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', 'CampaignController@getStatus' );
    } );
} );

如何从我的 inject_campaign 中间件访问活动参数(示例 URL 中的 40)?我的中间件运行良好,但无法弄清楚如何访问参数。

调用$request->segments()我的中间件为我提供了路径的一部分,但这似乎是一种访问数据的脆弱方式。如果路线变了怎么办?

4

2 回答 2

6

您可以使用更短的语法来做到这一点

您可以使用:

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

甚至更短:

echo $request->campaign;
于 2015-05-29T20:39:30.537 回答
0

知道了!

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

于 2015-05-29T15:07:17.117 回答