@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',
}


Скорее всего реквест инпут здесь не будет работать. Какой-то другой способ нужен, чем в контроллерах. Как в данных файлах логику использовать? Буду благодарен за пример.
  • Вопрос задан
  • 59 просмотров
Решения вопроса 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')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы