在Laravel软件包的中间件中获取路由



如何在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);
}

最新更新