Php Laravel在路由中使用多个前置过滤器
在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
之前使用许多动作,例如:
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'));
也同样有效