11

我有一个资源控制器Items

Route::resource('items', 'ItemsController');

在创建新项目的行动ItemsController@store中,我需要在使用表单的操作之前激活CSRF filter(并且可能)。Auth filter但我不会写

$this->beforeFilter('csrf')

它不起作用。当我将此调用放入父控制器的__construct().

我需要做什么才能直接为资源控制器操作调用一些过滤器?

4

2 回答 2

12

您应该能够将过滤器用于特定操作,只需将其设置__construct()如下:

class ItemsController extends BaseController
{
    public function __construct()
    {
        $this->beforeFilter('csrf', array('on' => 'store') );
    }

    //rest of controller... 
}

注意 - 您还可以使用关键字“only”和“except”并传递一组操作名称来应用(或否定)过滤器以进行多个操作。

于 2013-08-06T10:25:48.893 回答
0

您通常可以使用Route::resource()构造函数。使用此代码:

Route::resource('items', 'ItemsController', ['before' => 'csrf']);
于 2015-02-17T02:15:37.090 回答