laravel 5.6多语言验证

时间:2018-04-16 10:18:06

标签: laravel validation

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

在我的路线档案中,我有:

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

Route::post('/contact', [
    'uses' => 'ContactController@store' ]);

在ContactController中:

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以便切换到不同的验证语言。

1 个答案:

答案 0 :(得分:1)

请查看laravel documentation

中的此部分

您可以使用自定义内联消息,甚至可以更好地为不同语言创建自己的验证文件Reports.Read.All