@jazzus

Как проверить условия в Request-файлах Laravel?

Использую свои файлы для валидации в Laravel. Т.е. валидация не в контроллерах. В контроллерах создавать условия для валидации могу. Не получается именно в реквест-файлах (которые создаются командой php artisan make:request)

Пример файла:
public function rules()
    {
        return [,
          'name' => 'required|string|max:50',
        ];
    }

    public function messages()
    {
        return [
          'name.required' => 'Имя обязательно для заполнения',
          'name.max' => 'Максимальная длина имени 50 символов',
        ];
    }


Не могу прицепить условие к этому файлу. Типа если параметр в реквесте такой-то то делать проверку:
if ($request->input('type_name')==1){
    'name' => 'required|string|max:50',
}


Скорее всего реквест инпут здесь не будет работать. Какой-то другой способ нужен, чем в контроллерах. Как в данных файлах логику использовать? Буду благодарен за пример.
  • Вопрос задан
  • 75 просмотров
Решения вопроса 2
@aleksejjjj
Для вашего случая есть правило валидации required_if. Будет выглядеть так:
public function rules()
{
    return [
        'name' => 'required_if:type_name,1|string|max:50',
    ];
}
Ответ написан
@Kostik_1993
PHP Backend Developer, Laravel, Yii, Vue, Node.js
Конечно $request тут не сработает, а почему? ;))
Да потому что если включить голову и сначала изучить ООП, а потом браться за код, то не трудно догадаться что в данный момент мы как раз таки и находимся в этом самом $request
А следовательно мы можем получить его через $this
Как вам? Думаете это магия? А неееет - это знания и дока))
Как думаете чтобы теперь получить значение type_name что нужно написать?
Правильно, $this->input('type_name')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Amigoweb Магнитогорск
от 50 000 до 70 000 руб.
Ready for Sky Санкт-Петербург
от 110 000 до 120 000 руб.