Guf*_*ran 5 controller routes wildcard filter laravel
我试图从URL捕获一个通配符,然后首先将其传递给过滤器,然后路由到控制器.我不确定如何准确地绘制问题,但这是我到目前为止所尝试的内容.
Route::get('test/(:any?)', array('as' => 'testroute', 'uses' => 'test@result', 'before' => "test_filter:$1"));
Route::filter('test_filter', function($id = NULL)
{
if($id)
echo "This id is " . $id; // Prints "This id is $1"
});
Run Code Online (Sandbox Code Playgroud)
和
Route::get('test/(:any?)', array('as' => 'testroute', function($id = NULL)
{
if($id)
echo "this id is " . $id; // Does not do anything
}, 'uses' => 'test@result'));
Run Code Online (Sandbox Code Playgroud)
基本上,我想检查是否有一个id附加到URL并设置一个cookie(如果有的话).但无论如何,我都希望这个路由由控制器处理,无论是否附加了任何id.
我必须用这么多路径做同样的事情,所以我更喜欢像过滤器这样的东西,而不是修改控制器的代码.
我知道我可以直接将通配符元素传递给闭包,或者我可以将它作为参数提供给任何控制器,但在这种情况下我将不得不修改控制器代码,这是我目前无法做到的.
我可以通过过滤器吗?或者我不需要修改控制器代码的任何其他方式?
尝试在之前之后立即传递匿名
Route::get('test/(:any?)',
array(
'as' => 'testroute',
'uses' => 'test@result',
'before' => "test_filter",
function($my_cookie_value)
{
// Set cookie here
}
)
);
Run Code Online (Sandbox Code Playgroud)
取自这里