从中间件访问路由前缀中的 URL 参数
Access a URL Parameter in a Route Prefix from Middleware
我很难从我的中间件访问路由前缀参数。
鉴于此 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', 'CampaignController@getStatus' );
} );
} );
如何从我的 inject_campaign 中间件访问活动参数(示例 URL 中的 40)?我有中间件 运行 很好,但不知道如何访问参数。
在我的中间件中调用 $request->segments()
为我提供了部分路由,但这似乎是一种访问数据的脆弱方式。如果路线改变怎么办?
知道了!
$request->route()->getParameter('campaign')
您可以使用更短的语法来做到这一点
您可以使用:
echo $request->route()->campaign;
甚至更短:
echo $request->campaign;
我很难从我的中间件访问路由前缀参数。
鉴于此 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', 'CampaignController@getStatus' );
} );
} );
如何从我的 inject_campaign 中间件访问活动参数(示例 URL 中的 40)?我有中间件 运行 很好,但不知道如何访问参数。
在我的中间件中调用 $request->segments()
为我提供了部分路由,但这似乎是一种访问数据的脆弱方式。如果路线改变怎么办?
知道了!
$request->route()->getParameter('campaign')
您可以使用更短的语法来做到这一点
您可以使用:
echo $request->route()->campaign;
甚至更短:
echo $request->campaign;