Php Laravel在路由中使用多个前置过滤器

Php Laravel在路由中使用多个前置过滤器,php,laravel,laravel-4,Php,Laravel,Laravel 4,在laravel路线中,我想在之前使用许多动作,例如: Route::resource ('admin/contents', 'ContentManagmentController' , array('as'=>'contents')); 我想要: 'before'=>'csrf' 'before'=>'checkAjax' 如何修复此路线:是否正确 Route::resource ('admin/contents', 'ContentManagmentControll

在laravel路线中,我想在
之前使用许多动作,例如:

Route::resource  ('admin/contents', 'ContentManagmentController' , array('as'=>'contents'));
我想要:

'before'=>'csrf'
'before'=>'checkAjax'
如何修复此路线:是否正确

Route::resource  ('admin/contents', 'ContentManagmentController' , array('as'=>'contents', 'before'=>'csrf','checkAjax'));
语法:

array('as'=>'contents', 'before'=>'csrf','checkAjax');
不会像你期望的那样工作。它将生成阵列:

array(
    'as' => 'contents',
    'before' => 'csrf',
    '0' => 'checkAjax',
)
见:

您可以使用多个过滤器,方法是在单个字符串中用一个条形码字符分隔它们。 因此:

array('as'=>'contents', 'before' => 'csrf|checkAjax');
这将是正确的解决方案

编辑:

或者,您可以传递一个数组。例如

array('as'=>'contents', 'before' => array('csrf', 'checkAjax'));
也同样有效