You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Nova中如何修改错误提示信息?(Laravel8+Nova3环境)

解决Laravel Nova多语言字段验证提示不生效问题

核心原因

使用Digitalcloud\MultilingualNova\Multilingual时,多语言字段会被自动拆分为带语言后缀的字段(比如name_en、name_zh),原字段的required规则实际作用于这些拆分后的字段,直接修改Nova目录下的validation.php不会生效,需针对多语言字段做适配处理。

解决方法

方法1:字段定义时直接指定验证消息

在Nova字段代码中,通过规则的第二个参数自定义提示内容,或用->attribute()定义字段别名匹配翻译:

Text::make('Name')
    ->sortable()
    ->rules(['required', 'max:255'], [
        'required' => '名称不能为空',
    ])
    ->attribute('名称'),

方法2:在Laravel全局语言文件中配置

多语言字段实际为原字段名+语言后缀,需在全局语言目录中配置对应翻译:

  1. 打开resources/lang/zh-CN/validation.php(以中文为例)
  2. 在attributes数组中添加多语言字段别名:
'attributes' => [
    'name_en' => '英文名称',
    'name_zh' => '中文名称',
    // 其他多语言字段依次添加
],
  1. 确保required规则的模板正确:
'required' => ':attribute 不能为空',

方法3:使用MultilingualNova的多语言验证规则

借助扩展包自带的translatableRules方法,为不同语言指定对应提示:

use Digitalcloud\MultilingualNova\Multilingual;

Multilingual::make('Name')
    ->sortable()
    ->rules('required', 'max:255')
    ->translatableRules([
        'required' => [
            'en' => 'The name is required.',
            'zh' => '名称不能为空',
        ]
    ]);

方法4:清除缓存

修改语言文件后,执行以下命令清除缓存确保生效:

php artisan cache:clear
php artisan config:clear
php artisan view:clear

关键注意事项

  • Nova优先读取Laravel全局resources/lang/目录下的语言文件,无需修改nova/resources/lang/内的文件
  • 验证规则实际作用于拆分后的带后缀字段,翻译配置需对应这些字段名

内容的提问来源于stack exchange,提问作者Maksim Riabchenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 19:45:33