我有一个资源控制器Items
:
Route::resource('items', 'ItemsController');
在创建新项目的行动ItemsController@store
中,我需要在使用表单的操作之前激活CSRF filter
(并且可能)。Auth filter
但我不会写
$this->beforeFilter('csrf')
它不起作用。当我将此调用放入父控制器的__construct()
.
我需要做什么才能直接为资源控制器操作调用一些过滤器?
您应该能够将过滤器用于特定操作,只需将其设置__construct()
如下:
class ItemsController extends BaseController
{
public function __construct()
{
$this->beforeFilter('csrf', array('on' => 'store') );
}
//rest of controller...
}
注意 - 您还可以使用关键字“only”和“except”并传递一组操作名称来应用(或否定)过滤器以进行多个操作。
您通常可以使用Route::resource()
构造函数。使用此代码:
Route::resource('items', 'ItemsController', ['before' => 'csrf']);