首页 > 解决方案 > 在 Laravel 8 中,如何在未成功验证数据的情况下创建具有“失败”值的状态字段?

问题描述

在 Laravel 8 中,如何在未成功验证数据的情况下创建具有“失败”值的状态字段?我似乎无法扩展或捕获生成响应的部分(其中没有成功字段)是:

trait RegistersUsers {

public function register(Request $request)
{
    $this->validator($request->all())->validate();
    ...
    return $request->wantsJson()
        ? new JsonResponse(["status" => "success",
            "message" => "Registration successful",
            "user" => $user], 201)
        : redirect($this->redirectPath());

响应具有以下形式:

{
  "message": "The given data was invalid.",
  "errors": {
    "username": [
      "The username has already been taken."
    ],
    "phone": [
      "The phone has already been taken."
    ]
  }
}

但我希望它也能status以某种方式拥有领域。我该如何设置这个字段?提前感谢那些会做一些愚蠢的反对票的人。

标签: laravelapiregistration

解决方案


在这种情况下,您可以创建手动验证方法:

use Illuminate\Support\Facades\Validator;

public function store(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'title' => 'required|unique:posts|max:255',
            'body' => 'required',
        ]);

         if($validator->fails()) {    
              return response()->json(['status' => 0, 'errors' => $validator->messages()], 200);
         }
    }

推荐阅读