Laravel 5.8 验证在使用 Passport 失败后返回首页
Posted
技术标签:
【中文标题】Laravel 5.8 验证在使用 Passport 失败后返回首页【英文标题】:Laravel 5.8 validation return to home after it fails while using Passport 【发布时间】:2019-11-16 20:38:57 【问题描述】:我有一个 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',
];
当我用 Postman 测试它时输入错误的条目,例如,如果我用空值填充“描述”,它会返回主页而没有任何响应或错误。如何检索验证错误?
【问题讨论】:
【参考方案1】:我只是通过在我的请求标头中添加 'Accept': 'application/json' 来解决它。
【讨论】:
【参考方案2】:这是因为 Laravel 表单请求适用于 API 和非 API 请求。
根据表单发出的请求,它将重定向回(如果不是从表单发送,则返回原始表单 url 或主页),并在视图可用的 $errors
变量上带有错误包。
通过 ajax 发出的请求(通常在 API 上)通常具有标头 Accept: application/json
,因此 Laravel 会自动知道您希望将验证错误包作为响应正文上的 json 而不是对 API 没有意义的重定向。
希望这可以让你明白这一点。
【讨论】:
以上是关于Laravel 5.8 验证在使用 Passport 失败后返回首页的主要内容,如果未能解决你的问题,请参考以下文章
如何在 laravel 5.8 或 6 中制作通用自定义包进行身份验证。*