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

Laravel验证消息翻译失效问题排查及原因定位求助

Laravel验证错误消息未加载语言文件问题

Laravel验证功能出现异常,此前运行正常,故障时间未知。无论是使用Validator类还是自定义请求文件,都会出现相同问题:验证错误消息无法加载lang/en/validation.php中的文本描述,仅返回如validation.required的键名,对用户毫无意义。

示例验证代码

$validator = Validator::make($request->all(), [
    'username' => 'required',
]);

错误表现

  • 当username字段缺失时,错误消息包仅显示:validation.required
  • 当其他字段未满足最小长度要求时,错误消息包显示:validation.required、validation.min
  • 正常情况下应返回语言文件中的对应内容,例如'The username field is required.'

前端错误输出代码

@if ($errors->any())
  <div class="alert alert-danger">
    <ul>
      @foreach ($errors->all() as $message)
        <li>{{ $message }}</li>
      @endforeach
    </ul>
  </div>
@endif

问题根源

通过调试vendor/laravel/framework/src/Illuminate/Translation/Translator.php中的get()函数发现:翻译内容无法被获取是因为load()函数在错误的路径/resources/lang/下查找语言文件,但项目中存在一个由第三方旧包(适配Laravel 8路径)创建的/resource/lang文件夹,导致语言文件加载失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:45:31