我有一个资源控制器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']);