如果我在routes.php文件中有这行代码:
Route::when('*', 'csrf', array('post', 'put', 'patch', 'delete'));
我还需要这样做吗?
Route::group(array('before' => 'csrf'), function() {
Route::post('/search', array(
'as' => 'search-post',
'uses' => 'SearchController@postSearch'
));
});
或者可以这样做吗?
Route::post('/search', array(
'as' => 'search-post',
'uses' => 'SearchController@postSearch'
));
答案 0 :(得分:3)
Route::when
过滤器之前调用 before
过滤器(内部称为模式过滤器)。只是正常使用您的路线,你一切都很好。
以下是相关的源代码:
public function callRouteBefore($route, $request)
{
$response = $this->callPatternFilters($route, $request);
return $response ?: $this->callAttachedBefores($route, $request);
}
如您所见,首先会调用模式过滤器。如果他们返回任何回复,它将从这里返回,否则"正常"在调用过滤器之前。
答案 1 :(得分:2)
是;只有Route::post('/search', [...]);
才能安全。