我写了这部分Api:
public function store(Request $request)
{
$this->validate($request, [
'citizenship' => 'required',
'country' => 'required'
]);
...
我正在向邮递员发送邮件请求,但没有通过其中一个必填字段,我没有看到任何错误响应,但它只是将我重定向到应用程序的主页。如何获取错误消息?
答案 0 :(得分:0)
试试这个
try{
$result = YourModel::validate($attributes);
}catch (\Exception $e){
throw $e;
}
答案 1 :(得分:0)
Laravel非常聪明。如果您将字段Accept
设置为邮递员application/json
。您会注意到,您将收到422 HTTP状态代码的响应以及所有验证错误。另外(来自"Validation" section of the Laravel Documentation:
在AJAX请求期间使用validate方法时,Laravel不会生成重定向响应。相反,Laravel会生成包含所有验证错误的JSON响应。此JSON响应将使用422 HTTP状态代码发送。
看一下负责发回响应的方法,你就会明白为什么:)
public function response(array $errors)
{
if ($this->expectsJson()) {
return new JsonResponse($errors, 422);
}
return $this->redirector->to($this->getRedirectUrl())
->withInput($this->except($this->dontFlash))
->withErrors($errors, $this->errorBag);
}