【发布时间】:2021-02-24 23:54:31
【问题描述】:
我有一个功能可以进行一些验证。我得到的是验证规则名称,而不是 $errors->get(key) 返回我定义的自定义错误消息。例如,如果我使用的电子邮件不是唯一的:
$messages = [
'new_email.required' => 'Your new email address is required.',
'new_email:unique' => 'That email is already in use.',
'current_password|required' => 'Your current password must be provided.'
];
$rules = [
'new_email' => 'required|email|unique:users,email,' . $user->id,
'current_password' => 'required',
];
$validator = Validator::make($request->all(), $rules, $messages); // <-- custom error messages passed in here
if ($validator->fails()) {
$errors = $validator->errors();
if ($errors->has('new_email')) {
$msg = $errors->get('new_email'); // $msg contains ['validation.unique'] instead of ['That email is already in use.']
...
}
}
$errors->get('new_email') 返回['validation.unique'],而不是作为第三个参数传递给Validator::make 的数组中的自定义错误消息。如何获取自定义错误消息而不是已被请求破坏的验证规则?
有一些与此类似的问题,但所有答案似乎都集中在resource/lang/xx/validation.php 文件丢失或类似问题上。我根本没有使用这些本地化功能。
【问题讨论】:
-
您的消息数组键只是使用随机字符作为分隔符?那是行不通的。使用一个点
标签: laravel validation