检查使用自定义表单请求类时是否存在验证错误

bla*_*elt 5 php validation laravel

我正在使用 Laravel 5.4。我有一个自定义表单请求类,其中有验证规则和消息,我在控制器中使用它,如下所示:

public function store(CustomFormRequest $request)
{
  //
}
Run Code Online (Sandbox Code Playgroud)

我使用 ajax 发送请求,当出现任何验证错误时,Laravel 会抛出一个带有 422 状态代码的 HTTP 响应的错误,其中包括验证错误的 JSON 表示形式。

但我不想要这样。相反,在我的控制器的方法中,我想找出是否存在任何验证错误,如果有,那么我想返回带有一些附加数据以及验证消息的响应,如下所示:

// Inside my Controller
public function store(CustomFormRequest $request)
{
   if ($validator->fails())
   {
        $errors = $validator->errors();

        return response()->json(array('status' => 2, 'msg' => $errors->all() ));
    }
}
Run Code Online (Sandbox Code Playgroud)

能否请你帮忙 ?提前致谢。

Rwd*_*Rwd 3

最简单的方法是重写response()Form Request 类的方法。

为此,您可以简单地将如下内容添加到您的类中:

public function response(array $errors)
{
    if ($this->expectsJson()) {
        return new JsonResponse(['status' => 2, 'msg' => $errors], 422);
    }

    return parent::response($errors);
}
Run Code Online (Sandbox Code Playgroud)

不要为了导入Illuminate\Http\JsonResponse

希望这可以帮助!