【发布时间】:2019-09-28 11:26:20
【问题描述】:
我想使用自定义消息和属性来验证表单。例如,用户应该看到 Name: Please use fewer characters. 而不是 name: The name may not be greater than 20 characters.。
我正在使用 AJAX 以及 Laravel 返回的 response.data.errors 对象的键和值。我正在使用 Laravel 5.7。
这是我的RegisterController 中validator 函数的简化版本。
protected function validator(array $data)
{
// Nice attribute names
$attributes = [
'name' => 'Name',
// ...
];
// Custom messages
$messages = [
'max' => 'Please use fewer characters.'
// ...
];
// Rules
$rules = [
'name'=> 'required|max:20',
// ...
];
// Working for messages, but not for attribute names
$validator = Validator::make($data, $rules, $messages, $attributes);
// Also not working
// $validator->setAttributeNames($attributes);
return $validator;
}
当出现验证错误时,用户会收到类似name: Please use fewer characters. 的消息。这意味着显示来自我的自定义数组的消息,但使用默认属性名称。这里有什么问题?
【问题讨论】:
-
语法挑剔:“请使用 less 牛奶”(不可数),“请使用 更少 个字符”(可数)。
-
谢谢!不敢相信我居然写了“更少的字符”……
标签: laravel laravel-5.7