如何在 laravel 中更改验证错误的密钥

我是laravel的新手,正在研究apis,我已经制作了一个api,我已经实现了验证。一切都很好,但我被困在一件小事上。我想更改验证错误中的键名称。例如,对于“唯一”验证错误。这就是现在显示的内容

http://img.mukewang.com/62feedbd0001c78106170188.jpg

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


我在照明/支持/验证方面尝试了很多东西.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


覆盖 laravel 验证消息


这是验证码


$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' 

    ]); 


慕侠2389804
浏览 98回答 4
4回答

智慧大石

您可以手动遍历错误消息包并构造响应以替换密钥    $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;

慕婉清6462132

为了更改某个字段的错误消息的键,可以将此特定字段的验证从请求传输到控制器(或服务)。这样,您就可以使用所需的任何名称引发错误。例如:if (#your validation of the field failed#) {  throw ValidationException::withMessages(['your_key' => 'your message']);}不要忘记这行:use Illuminate\Validation\ValidationException;现在的错误将如下所示:{    "message": "The given data was invalid.",    "errors": {        "your_key": [            "your message"        ]    }}

翻过高山走不出你

在资源中 - lang - en(或任何语言) - 验证.php将此代码放在底部:'attributes' => [    'email' => 'The Email', ],

慕田峪7331174

如果我很好地理解了这个问题。这将帮助您:https://laravel.com/docs/7.x/validation#rule-unique在您的情况下:'email' => 'required|email|unique:users,message'唯一:表,列,例外,id列希望它有帮助。
打开App,查看更多内容
随时随地看视频慕课网APP