web-dev-qa-db-ja.com

Laravelルートからフィルターにパラメーターを渡す

laravelフレームワークを使用しています。次のルートがある場合:

Route::get('/test/{param}', array('before'=>'test_filter', 'SomeController@anyAction'));

そしてこのフィルター:

Route::filter('test_filter', function() {
    $param = [Get the parameter from the url];
    return "The value is $param";
});

/ test/foobarにアクセスしたときに「値はfoobarです」というページが表示されるように、フィルターにパラメーターを渡すにはどうすればよいですか

17
735Tesla

フィルターには、ルートオブジェクトやリクエストなどのパラメーターを渡すことができます。

フィルターパラメーターの指定

Route::filter('age', function($route, $request, $value)
{
    //
});

上記の例はドキュメントから取得されます: http://laravel.com/docs/routing#route-filters

クロージャーの中に入ると、$routeからパラメーターを取得します。

Route::filter('test_filter', function($route) {
    $param = $route->getParameter('param'); // use the key you defined
    return "The value is $param";
});

Route::filter('test_filter', function() {
    $param = Request::segment(1);
    return "The value is $param";
});
40
Damien Pirsy