Laravel:将路由参数传递到过滤参数


Laravel: pass route parameter to filter parameter

我有这个路由(注意过滤器正在应用一个可选参数):

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));
    }
});

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

你可以做

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 ....