是否可以告诉Laravel验证器使用哪种语言进行验证?
我有一个应用程序,其文本为英文,但对于某些表单,我需要使用其他语言返回字段的验证错误。
我研究了一下,发现我可以使用\App::setLocale('ro')
设置应用程序的语言,因此resources/lang/ro/validation.php
下的文件将用于验证,但我不想与setLocale
发脾气。在最糟糕的情况下,我可以使用它来调整并在验证之前更改语言,并在验证之后将其更改回来,但它似乎不是一个好的解决方案。
我正在寻找更像这样的东西:
$this->validate($request, [
'title' => 'required',
'short' => 'required',
], 'lang_that_I_set_in_DB');
答案 0 :(得分:1)
如果您可以选择自定义验证器,则可以设置验证器转换器的区域设置:
$validator = Validator::make($request->all(), [
'title' => 'required',
'short' => 'required',
]);
$validator->getTranslator()->setLocale('ro');
$this->validateWith($validator);
答案 1 :(得分:0)
我确实想到了这一点,谢谢你给我指点!
这就是它在Laravel 5.1中的表现:
$validator = \Validator::make($request->all(), [
'title' => 'required',
'short' => 'required',
]);
$validator->getTranslator()->setLocale('ro');
if ($validator->fails()) {
return redirect()
->back()
->withErrors($validator)
->withInput();
}