Выбор ответа Junior Laravel: контейнер и очереди обновлено
Валидация запросов
Вопрос
Где в Laravel принято валидировать входные данные формы создания заказа?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: В классе FormRequest с rules() и authorize(). FormRequest автоматически внедряется в метод контроллера, проверяет права и правила до вызова метода и при ошибке возвращает 422 (для JSON) или редирект с ошибками.
Варианты ответа
- В модели в методе
save()перед записью в базу данных - В классе
FormRequestсrules()иauthorize()правильный ответ - В Blade-шаблоне формы через директиву
@error - В миграции через ограничения колонок таблицы
Разбор
FormRequest автоматически внедряется в метод контроллера, проверяет права и правила до вызова метода и при ошибке возвращает 422 (для JSON) или редирект с ошибками. В контроллере используется $request->validated(). Ограничения базы нужны как последняя линия защиты, но не заменяют валидацию с понятными сообщениями.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.