在Laravel Package的中间件中获取路由

时间:2017-07-30 10:33:28

标签: php laravel laravel-5.4

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

});

1 个答案:

答案 0 :(得分:1)

检入您的中间件

public function handle($request, Closure $next)
        {

            dd(\Request::route()->uri);

            return $next($request);
        }