如何全局修改Laravel的验证错误提示信息?
全局配置通用验证错误消息的方法
当然可以全局修改required这类通用验证规则的错误消息,彻底避免在每个请求类里重复编写相同内容,下面是两种常用方案:
1. 修改语言文件(推荐)
Laravel 默认通过语言文件管理验证消息,步骤如下:
- 找到项目根目录下的
resources/lang文件夹,如果没有中文语言包,先复制en目录并重命名为zh-CN; - 打开
resources/lang/zh-CN/validation.php文件; - 在
rules数组中找到对应规则(比如required),修改其值为你想要的全局消息:
'rules' => [ // ...其他规则 'required' => ':attribute 为必填项。', // ...其他规则 ],
- 如果你想把字段名(比如
title、body)替换成中文,还可以在同一个文件的attributes数组里配置:
'attributes' => [ 'title' => '标题', 'body' => '内容', ],
这样当title字段触发required验证时,错误消息就会自动变成「标题为必填项。」,无需在请求类里单独设置。
2. 通过服务提供者自定义验证器
如果需要更灵活的逻辑(比如根据不同场景动态调整消息),可以在App\Providers\AppServiceProvider的boot方法里全局注册验证消息替换器:
use Illuminate\Support\Facades\Validator; public function boot() { // 全局替换required规则的错误消息 Validator::replacer('required', function ($message, $attribute, $rule, $parameters) { // 这里可以添加自定义逻辑,比如根据属性名动态生成消息 return "{$attribute} 不能为空,请填写"; }); }
内容的提问来源于stack exchange,提问作者Melly
相关产品推荐
相关产品推荐

