🧠 Laravel after() — After What, Exactly?
Многие считают, что метод after() в Form Request срабатывает после успешной валидации.
Логично? Да.
Но — неправильно.
На самом деле after() вызывается после завершения валидации, даже если она провалилась.
И это легко превращается в источник неожиданных багов и лишних SQL-запросов.
📉 Пример из практики:
даже при невалидных данных (brand_id = «Hepu») Laravel всё равно лезет в базу:
select exists(select * from products where article = ...)
А если в теле запроса прилетит массив вместо строки — получите 500-ку и «Array to string conversion».
✅ Как обезопаситься: не делать тяжёлые проверки (например, через БД) прямо в Form Request.
Логика валидации данных — в Form Request, бизнес-валидация — в сервисах.
Так код станет быстрее, чище и проще в тестировании.
👉 Примеры в статье
Библиотека пхпшника