【问题标题】:Laravel 5.8 validation return to home after it fails while using PassportLaravel 5.8 验证在使用 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 测试它时输入错误的条目,例如,如果我用空值填充“描述”,它会返回主页而没有任何响应或错误。如何检索验证错误?

【问题讨论】:

    标签: json laravel api validation request


    【解决方案1】:

    我只是通过在我的请求标头中添加 'Accept': 'application/json' 来解决它。

    【讨论】:

      【解决方案2】:

      这是因为 Laravel 表单请求适用于 API 和非 API 请求。

      根据表单发出的请求,它将重定向回(如果不是从表单发送,则返回原始表单 url 或主页),并在视图可用的 $errors 变量上带有错误包。

      通过 ajax 发出的请求(通常在 API 上)通常具有标头 Accept: application/json,因此 Laravel 会自动知道您希望将验证错误包作为响应正文上的 json 而不是对 API 没有意义的重定向。

      希望这可以让你明白这一点。

      【讨论】:

        猜你喜欢
        • 2020-08-17
        • 2017-02-20
        • 1970-01-01
        • 2019-12-23
        • 2021-11-30
        • 1970-01-01
        • 1970-01-01
        • 2014-03-09
        • 2020-03-22
        相关资源
        最近更新 更多