laravel - Laravel,使用自定义字段名称进行验证
问题描述
我正在保存通过验证的数据。验证设置在一个名为 $rules 的数组中:
$rules = array(
'name_field' => 'required|unique:users',
'number_in_db' => 'required',
);
$validator = Validator::make($request->all(), $rules);
if ($validator->passes()) {
MyModel::create($request->input());
return redirect()->route('some.route')->withFlashSuccess('Done!');
} else
return redirect()->back()->withInput()->withErrors($validator);
工作正常,但是当它重定向到出现错误的视图时,它会向我显示与数组完全相同的字段名称,例如:“name_field 已注册”。如何为每个字段声明自定义名称?例如,有“名称已注册”之类的内容。
解决方案
来自 Laravel文档..
- 自定义错误消息
您可以使用自定义错误消息而不是默认值进行验证。有几种方法可以指定自定义消息。首先,您可以将自定义消息作为第三个参数传递给 Validator::make 方法:
$messages = [
'name.required' => 'The "name" field is required!',
'name.unique' => 'The "name" field is should be unique!',
];
$validator = Validator::make($input, $rules, $messages);
- 在语言文件中指定自定义属性
如果您希望将验证消息的 :attribute 部分替换为自定义属性名称,您可以在 resources/lang/xx/validation.php 语言文件的属性数组中指定自定义名称:
'attributes' => [
'name_field' => 'name',
'number_in_db' => 'number',
],
官方文档中提供了更多选项。但我建议您使用“在语言文件中指定自定义属性”方法。
推荐阅读
- ionic-framework - Ionic v4“部署”更新 - 安装后出现白屏
- javascript - geocodeAddress onload MVC Model.Address
- c - 通过管道将数据传递给 C 程序
- visual-studio - 如何在 Windows 8 上安装 tfs 2018
- powershell - 从函数格式化数据,或拉出全局变量
- chromecast - Google Cast CAF 接收器和 DRM + Bearer 令牌
- node.js - 如何沙箱 Jest 测试
- azure - 以编程方式停止 azure 函数
- visual-studio-code - VS Code:保存时删除换行符
- multithreading - OpenMP 和 shared_ptr