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

Laravel 8波斯语验证错误前端不显示问题求助

Laravel 8 波斯语本地化错误显示修复方案

1. 修复视图转义问题

波斯语字符属于阿拉伯语系,Blade默认的{{ }}语法会自动转义特殊字符,导致错误消息无法正常显示。将视图中错误输出的语法替换为{!! !!},避免转义:

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

2. 校验翻译文件格式

检查resources/lang/fa/validation.php的规则定义,确保占位符和语法正确:

  • 规则字符串要正确使用:attribute占位符,比如:
    'required' => ':attribute الزامی است.',
    
  • 确认attributes数组中的属性名称是正确的波斯语,比如:
    'attributes' => [
        'name' => 'نام',
        'email' => 'ایمیل',
        // 其他属性对应关系
    ],
    

3. 清理框架缓存

旧的视图、配置缓存可能导致新翻译不生效,执行以下命令清理:

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

4. 确保Locale全局生效

除了在config/app.php中设置'locale' => 'fa',可以通过中间件强制全局应用波斯语Locale:

  1. 创建SetLocale中间件:
<?php
namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class SetLocale
{
    public function handle(Request $request, Closure $next)
    {
        app()->setLocale('fa');
        return $next($request);
    }
}
  1. 在app/Http/Kernel.php的web中间件组中添加该中间件,确保每个请求都使用波斯语环境。

5. 检查控制器错误传递逻辑

确认控制器中正确将验证错误传递到视图:

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

if ($validator->fails()) {
    return redirect()->back()->withErrors($validator)->withInput();
}

内容的提问来源于stack exchange,提问作者hosein in jast

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:07:41