2015-05-29 61 views
3

我正努力從中間件訪問路由前綴參數。從中間件訪問路由前綴中的URL參數

鑑於這種網址:http://www.example.com/api/v1/campaign/40/status和以下路線:

Route::group([ 
    'prefix' => 'api/v1' 
], function() 
{ 
    Route::group([ 
     'prefix' => 'campaign/{campaign}', 
     'where' => [ 'campaign' => '[0-9]+' ], 
     'middleware' => [ 
      'inject_campaign' 
     ] 
    ], function() 
    { 
     Route::get('status', '[email protected]'); 
    }); 
}); 

如何訪問運動參數(40中的示例URL)從我inject_campaign中間件?我有中間件運行良好,但不能解決如何訪問該參數。

在我的中間件中調用$request->segments()爲我提供了部分路由,但這似乎是訪問數據的一種脆弱方式。如果路線改變怎麼辦?

回答

6

可以使用更短的語法做

您可以使用:

echo $request->route()->campaign; 

甚至更​​短:

echo $request->campaign; 
0

Got it!

$request->route()->getParameter('campaign')