我有一个store()方法。
public function create(StorePost $request)
{
$post = Post::create([
'title' => $request->title,
'description' => $request->description,
]);
return response()->json([
'post' => $post
], 201);
}
在StorePost类中,我验证了请求。
public function rules()
{
return [
'title' => 'required|string|max:255',
'description' => 'required',
];
}
例如,当我用错误的条目对邮递员进行测试时,例如,如果我用空值填充“说明”,则它将返回首页,而没有任何响应或错误。如何获取验证错误?
答案 0 :(得分:0)
我只需在请求的标题中添加'Accept':'application / json'即可解决此问题。
答案 1 :(得分:0)
发生这种情况是因为Laravel表单请求可同时用于API和非API请求。
根据表单提出的请求,它将重定向回(如果不是从表单发送的,则返回原始表单的url或首页),并带有一个视图上可用的$errors
变量的错误包。
在由ajax发出的请求(通常在API上)上通常具有标头Accept: application/json
,因此Laravel会自动知道您希望将验证错误信息包作为json在响应主体上,而不是将重定向视为不合理的重定向API。
希望这可以向您澄清事情。