Laravel 5.6 多语言验证



我想在输出错误消息时将语言环境切换到另一种语言。现在,默认值始终是英语的默认语言。

在我的路由文件中,我得到了:

Route::get('/{locale}/contact', [
    'uses' => 'ContactController@create' ])->name('contact');
Route::post('/contact', [
    'uses' => 'ContactController@store' ]);

在联系人控制器内部:

public function store(ContactFormRequest $request)
{
  ... ... ...
}

在 ContactFormRequest 中,如果我添加"App::getLocale('tc'(,它会将验证语言更改为'tc',而不是默认的英语'en'。

class ContactFormRequest extends FormRequest
{
    public function rules()
    {
        App::getLocale('tc');
        return [
                'name' => 'required',
                'message' => 'required',
                'email' => 'required_without:number',
                'number' => 'required_without:email',
            ];
    }
}

我的问题是如何检测区域设置并将当前区域设置传递到 ContactFormRequest 中,以便切换到不同的验证语言。

在 laravel 文档中查看此部分。

您可以使用自定义内联消息,或者更好的是为不同语言创建自己的验证文件resources/lang/xx/validation.php

最新更新