从create view(PostsController)提交数据后,请求将转到存储方法(PostsController),但是没有数据在验证也不抛出错误。
在删除validate()之后,它可以工作并且输出为:123
class PostsController extends Controller
{
.
..
...
public function store(Request $request)
{
$this->validate($request, [
'title' => 'required',
'body' => 'required',
]);
return 123;
}
}
Output after the validate the data:
123
答案 0 :(得分:2)
答案 1 :(得分:1)
尝试从$request
调用validate方法:
$validatedData = $request->validate([
'title' => 'required',
'body' => 'required',
]);
中所述
验证方法由Illuminate \ Http \ Request提供
您还可以创建自己的请求,运行命令:
php artisan make:request PostStoreRequest:
在您的请求中:
public function rules()
{
return [
'title' => 'required',
'body' => 'required',
];
}
您的控制器:
public function store(PostStoreRequest $request)
{
return 123;
}
}
我建议您这样做,因为您将职责分开了
传入的表单请求在调用controller方法之前已得到验证,这意味着您无需使用任何验证逻辑来使您的控制器混乱: