添加过滤器到路由?

时间:2014-03-25 09:31:01

标签: laravel laravel-4

这是我的路线:

Route::controller('/site-manager-gateway', 'SiteManagerGatewayController');

如何应用CSRF过滤器和Auth过滤器,我尝试过将它们添加为:

Route::controller('/site-manager-gateway', 'SiteManagerGatewayController', array('before' => 'auth' | 'csrf'));

但没有运气。

2 个答案:

答案 0 :(得分:2)

您可以在一个组中包装多个控制器/操作,并为整个组应用过滤器。我认为这是最佳做法,因为您不必在每条路线上重复自己。

此外,您必须在字符串

中指定过滤器
'filterA|filterB'

不是

'filterA' | 'filterB'

所以路由器看起来像:

Route::group(array('before' => 'auth|csrf'), function()
{
    Route::controller('/site-manager-gateway', 'SiteManagerGatewayController');
});

答案 1 :(得分:1)

查看http://laravel.com/docs/routing#route-filters并查看"将多条路线附加到过滤器"

Route::get('user', array('before' => 'auth|old', function()
{
    return 'You are authenticated and over 200 years old!';
}));

通过查看您的代码,您将auth和csrf与单引号分开时应将它们放在一起,而不是' auth' | '跨站请求伪造'你需要' auth | CSRF'