Можно ли указать разные переводы для разных правил валидации в Laravel?

Подскажите - можно ли указывать разные переводы для разных файлов с валидацией. Т.е. если например в обоих будет поле expires_at, но в 1 она например будет относиться к пользователю, а в другом к объявлению?

Сейчас переводы хранятся в файле resources/lang/ru/validation.php
<?php
return [

    'before_or_equal' => 'В поле :attribute должна быть дата не позднее :date.',
    //...
    'required' => 'Поле :attribute обязательно для заполнения.',
    //...

    'custom' => [
        'expires_at' => [
            'required' => 'Поле Дата окончания объявления обязательно для заполнения.',
            'before_or_equal' => 'В поле Дата окончания объявления должна быть дата не позднее 5 дней от текущей',
        ]
    ],
];


Файл с валидацией app/Http/Requests/CreateRequest.php
class CreateRequest extends FormRequest
{
//..
    public function rules(): array
    {
        return [
            'expires_at' => 'required|date|date_format:d-m-Y|after:today|before_or_equal:+' . Warehouse::PUBLICATION_PERIOD .' days',
        ];
    }
}
  • Вопрос задан
  • 100 просмотров
Решения вопроса 2
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
Комментировать
@K0r5hun Автор вопроса
Мда... Не прошло и полгода как нашёл нормальный пример. Сложновато всё же воспринимается информация из английской документации ну или примеры не очень прозрачные. Для тех, кто тоже столкнётся с этой проблемой и будет искать - можно поступить вот так:
class CreateRequest extends FormRequest
{
//..
    public function rules(): array
    {
        return [
            'expires_at' => 'required|date',
        ];
    }

    public function messages()
    {
        return [
            //'expires_at.required' =>'Обязательно заполните! Иначе сайт не работает :)',
            'expires_at.required' => trans('global.user.zzz'), //Ссылаемся на значение поля user['zzz'] из файла resources/lang/ru/global.php
        ];
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы