Laravel:将路由参数传递给filter参数

时间:2014-08-08 13:38:52

标签: php laravel laravel-4

我有这条路线(请注意使用可选参数应用的过滤器):

Route::get('/greet/{name?}', array(
    'before'    => 'summergreet:optionalNameToCapture',
    function ($name = 'friend') {
        return View::make('greetview', array('name' => $name));
    }
));

指定的过滤器:

Route::filter('summergreet', function($route, $request, $name = 'amigo')
{
    if (date('m') >= 7 && date('m') <= 9) {
        return View::make('summergreetview', array('name' => $name));
    }
});

如何捕获路线的可选参数并将其传递给过滤器?

1 个答案:

答案 0 :(得分:2)

你可以做到

Route::filter('summergreet', function($route, $request, $name = 'amigo')
{
    $name = $route->parameter('name');
    if (date('m') >= 7 && date('m') <= 9) {
        return View::make('summergreetview', array('name' => $name));
    }
});

我不确定“可选”参数的工作原理。您可能需要首先检查变量上的isset()is_null ....