4 回答
TA贡献1946条经验 获得超3个赞
您可以手动遍历错误消息包并构造响应以替换密钥
$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;
TA贡献1804条经验 获得超2个赞
为了更改某个字段的错误消息的键,可以将此特定字段的验证从请求传输到控制器(或服务)。这样,您就可以使用所需的任何名称引发错误。
例如:
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"
]
}
}
TA贡献1875条经验 获得超3个赞
在资源中 - lang - en(或任何语言) - 验证.php
将此代码放在底部:
'attributes' => [
'email' => 'The Email',
],
TA贡献1828条经验 获得超13个赞
如果我很好地理解了这个问题。这将帮助您:
https://laravel.com/docs/7.x/validation#rule-unique
在您的情况下:
'email' => 'required|email|unique:users,message'
唯一:表,列,例外,id列
希望它有帮助。
- 4 回答
- 0 关注
- 97 浏览
添加回答
举报