简体   繁体   English

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

[英]Getting Route in Laravel Package's Middleware

How do I get Route name in a Laravel 5.4 vendor package's middleware ? 如何在Laravel 5.4供应商软件包的middleware获取路由名称

This is how my package and middleware in question is structured. 这就是我的程序包和中间件的结构。

vendor
-Student
--Pickachoo
--src
---PickachooServiceProvider.php
---Controller
---Middleware
----StudentMiddleware.php
---Routes
---Views

This is how I am trying to access the route name in the middleware: 这就是我尝试访问中间件中的路由名称的方式:

public function handle($request, Closure $next)
{
    dd( $request->route()->getName() );
    return $next($request);
}

This $request->route()->getName() is supposed to return the route name, right ? 这个$request->route()->getName()应该返回路由名称,对吗? But it is returning null. 但是它返回null。

I tried adding middleware in 3 ways, but nothing worked, it returns null every time. 我尝试通过3种方式添加中间件,但没有任何效果,每次都返回null

I am adding my middleware StudentMiddleware in PickachooServiceProvider as follows : 我加入我的中间件StudentMiddlewarePickachooServiceProvider如下:

public function boot(\Illuminate\Routing\Router $router)
{
    /*Register middleware*/
    $router->aliasMiddleware('authenticate', 'Student\Pickachoo\Middleware\StudentMiddleware');
}

Instead I tried adding the middleware in app/http/kernel.php arrays $middleware and $routeMiddleware separately without any success. 相反,我尝试将中间件分别添加到app/http/kernel.php数组$middleware$routeMiddleware但没有成功。

The route: 路线:

Route::middleware(['web'])->group(function(){

    Route::get('/test', function() {
        echo 'Something';
    })->middleware('authenticate');

});

Check in your middleware 签入您的中间件

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

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

            return $next($request);
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM