如何在Laravel 5.4
供应商包的middleware
中获取路由名称?
这就是我的软件包和中间件的结构。
vendor
-Student
--Pickachoo
--src
---PickachooServiceProvider.php
---Controller
---Middleware
----StudentMiddleware.php
---Routes
---Views
这就是我尝试访问中间件中的路由名称的方式:
public function handle($request, Closure $next)
{
dd( $request->route()->getName() );
return $next($request);
}
这个$request->route()->getName()
应该返回路由名称,对吧?但它返回 null。
我尝试以 3 种方式添加中间件,但没有任何效果,它每次都返回null
。
我正在PickachooServiceProvider
中添加我的中间件StudentMiddleware
如下:
public function boot(IlluminateRoutingRouter $router)
{
/*Register middleware*/
$router->aliasMiddleware('authenticate', 'StudentPickachooMiddlewareStudentMiddleware');
}
相反,我尝试将中间件添加到app/http/kernel.php
数组中,$middleware
和$routeMiddleware
分别,但没有任何成功。
路线:
Route::middleware(['web'])->group(function(){
Route::get('/test', function() {
echo 'Something';
})->middleware('authenticate');
});
签入中间件
public function handle($request, Closure $next)
{
dd(Request::route()->uri);
return $next($request);
}