Laravel在路线过滤前使用了很多

时间:2014-02-05 10:47:18

标签: php laravel laravel-4

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

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

我希望:

'before'=>'csrf'
'before'=>'checkAjax'

如何修复此路线:这是正确的吗?

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

1 个答案:

答案 0 :(得分:1)

语法:

array('as'=>'contents', 'before'=>'csrf','checkAjax');

不会按预期工作。它将生成数组:

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

请参阅Laravel Routing: Attaching Multiple Filters to a Route

您可以通过在单个字符串中使用条形|字符分隔多个过滤器来使用它们。 因此:

array('as'=>'contents', 'before' => 'csrf|checkAjax');

将是正确的解决方案。

编辑:

或者,您可以改为传递数组。 E.g。

array('as'=>'contents', 'before' => array('csrf', 'checkAjax'));

也同样有效。