2017-07-30 90 views
0

我該如何獲得路由名稱Laravel 5.4供應商軟件包的middleware在Laravel Package中間件中獲取路由

這就是我的軟件包和中間件的結構。

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

我加入我的中間件StudentMiddlewarePickachooServiceProvider如下:

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

入住中間件

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

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

      return $next($request); 
     } 
+0

那沒有工作。但爲什麼 ? – StudentX

+0

它向你展示了你現在訪問的請求。轉儲包含大量信息的路由對象 –

相關問題