如何在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
。
我在StudentMiddleware
中添加我的中间件PickachooServiceProvider
,如下所示:
public function boot(\Illuminate\Routing\Router $router)
{
/*Register middleware*/
$router->aliasMiddleware('authenticate', 'Student\Pickachoo\Middleware\StudentMiddleware');
}
相反,我尝试分别在app/http/kernel.php
数组$middleware
和$routeMiddleware
中添加中间件,但没有成功。
路线:
Route::middleware(['web'])->group(function(){
Route::get('/test', function() {
echo 'Something';
})->middleware('authenticate');
});
答案 0 :(得分:1)
检入您的中间件
public function handle($request, Closure $next)
{
dd(\Request::route()->uri);
return $next($request);
}