如何更改laravel中验证错误的键

问题描述 投票:0回答:2

我是laravel的新手,正在使用api,我制作了一个实现了验证的api。一切工作都很好,但是我却坚持了一点。我想更改验证错误中的密钥名称。例如对于“唯一”验证错误。现在显示的是

enter image description here

我想用“消息”(文本)重命名“电子邮件”(文本)键

我在illuminate / support / validation.php中尝试了很多事情

messagebag.php文件,但如果更改,则显示错误信息“数据未定义”。

我关注的链接是

https://stillat.com/blog/2018/04/21/laravel-5-message-bags-adding-messages-to-the-message-bag-with-add

https://laracasts.com/discuss/channels/laravel/custom-validation-message-for-array-using-different-key?page=0

Override laravel validation message

这是验证码

$validator = Validator::make($request->all(), [ 
      'first_name' => 'required',
      'last_name' => 'required',
      'email' => 'required|email|unique:users',
      'fcm_token' => 'required',
      'password' => 'required',  
      'c_password' => 'required|same:password' 
    ]); 
php laravel validation
2个回答
0
投票

您可以手动遍历错误MessageBag并构造响应以替换密钥

    $validator = Validator::make($request->all(), [ 
      'first_name' => 'required',
      'last_name'  => 'required',
      'email'      => 'required|email|unique:users',
      'fcm_token'  => 'required',
      'password'   => 'required',  
      'c_password' => 'required|same:password' 
    ]);   

    $errors = [];
    foreach ($validator->errors()->messages() as $key => $value) {
        if($key == 'email')
            $key = 'message';
        $errors[$key] = is_array($value) ? implode(',', $value) : $value;
        //implode is for when you have multiple errors for a same key
        //like email should valid as well as unique
    }

    $result = array("status" => count($errors)?0:1, 'data'=>$errors);
    return $result;

-1
投票

在幼虫中,您可以使用此

'email'=>'required|email'
© www.soinside.com 2019 - 2024. All rights reserved.