У меня есть API, поэтому, когда front отправляет мне «language», я хочу, чтобы Validator установил setLocale () и отобразил сообщение об ошибке (из resources / lang / ru / validation. php) на запрашиваемом языке.
Теперь у меня есть этот код, который работает:
$validator = Validator::make($request->all(), [
'supplier_id' => 'required|integer',
'language' => 'required',
]);
App::setLocale($request->language);
if ($validator->fails()).....
Я хочу удалить App :: setLocale, добавить пользовательское правило "lang" и изменить его на:
$validator = Validator::make($request->all(), [
'supplier_id' => 'required|integer',
'language' => 'required|lang',
]);
if ($validator->fails())....
Так отсюда: https://laravel.com/docs/6.x/validation#using - расширения в поставщиках / AppServiceProvider. php Я добавил это:
public function boot()
{
Validator::extend('lang', function ($attribute, $value, $parameters, $validator) {
//die(var_dump([$attribute/*"language"*/, $value/*"ru"*/, $parameters/*[]*/]));
App::setLocale($value);return $value;
});
}
Что я пропустил? Может быть, есть другое решение?