Size: a a a

Laravel для начинающих

2021 March 29

SC

Sergey Chizhik in Laravel для начинающих
Александр Кондраков
можешь подробнее описать кейс?
В одном месте который rules() подкидывается правило валидации, в другом passedValidation() — пост-обработка. По-хорошему, это надо свести в одно место, что бы как-нибудь подкинуть в Request один вызов чего-нибудь и стало заебись.
- есть вариант закастомить Request, что бы каждая группа полей подкидывала кроме rules ещё свой массив callable, для passedValidation
- вариант который Адель предложил, юзать независимые Request

Кейс простой, разделить логически параметры и пост-обработку для групп полей
- пейджинации
- фильтрации по дате
- фильтрации по основным сущностям приложения

Но при этом объединить, что бы технически их использование имело одну точку входа
источник

С

Санжар in Laravel для начинающих
зашел
попытался почитать
понял что даже не понимая английский слишком привык исходя из контекста + гугл перевода читать оригинал доку
источник

С

Санжар in Laravel для начинающих
такое бы когда только начинаешь
источник

SC

Sergey Chizhik in Laravel для начинающих
Если бы Rules мог не только проверять, а ещё и изменять, это бы решило мою задачу. Но логически он не для этого
источник

D

Dimk_O in Laravel для начинающих
Санжар
зашел
попытался почитать
понял что даже не понимая английский слишком привык исходя из контекста + гугл перевода читать оригинал доку
Нуу, понимание есть разное , я тоже привык к англ доке, но например если читать описание и углубляться что делает тот или иной кусок кода, все же приходит на помощь русская дока, поскольку легче на родном языке понять, как это работает. Сейчас еще будет поиск, жду одобрения от Algolia для того же поиска, что на офф сайте по доке. И будет четко, быстро будешь находить то, что тебе нужно
источник

VY

Vladimir Yefremov in Laravel для начинающих
Sergey Chizhik
Если бы Rules мог не только проверять, а ещё и изменять, это бы решило мою задачу. Но логически он не для этого
нужно мидлварю(?)
источник

SC

Sergey Chizhik in Laravel для начинающих
Vladimir Yefremov
нужно мидлварю(?)
Не для этого они
источник

VY

Vladimir Yefremov in Laravel для начинающих
Sergey Chizhik
Не для этого они
тоже не то?
а как тогда?
источник

SC

Sergey Chizhik in Laravel для начинающих
Vladimir Yefremov
тоже не то?
а как тогда?
Ну вон выше вариант есть
источник

АК

Александр Кондраков... in Laravel для начинающих
Sergey Chizhik
В одном месте который rules() подкидывается правило валидации, в другом passedValidation() — пост-обработка. По-хорошему, это надо свести в одно место, что бы как-нибудь подкинуть в Request один вызов чего-нибудь и стало заебись.
- есть вариант закастомить Request, что бы каждая группа полей подкидывала кроме rules ещё свой массив callable, для passedValidation
- вариант который Адель предложил, юзать независимые Request

Кейс простой, разделить логически параметры и пост-обработку для групп полей
- пейджинации
- фильтрации по дате
- фильтрации по основным сущностям приложения

Но при этом объединить, что бы технически их использование имело одну точку входа
Тогда да. Нужно делать кастомный реквест и в нем реализовывать.
источник

OK

Oleg Khromov in Laravel для начинающих
спасибо! =)
источник

АК

Александр Кондраков... in Laravel для начинающих
Sergey Chizhik
В одном месте который rules() подкидывается правило валидации, в другом passedValidation() — пост-обработка. По-хорошему, это надо свести в одно место, что бы как-нибудь подкинуть в Request один вызов чего-нибудь и стало заебись.
- есть вариант закастомить Request, что бы каждая группа полей подкидывала кроме rules ещё свой массив callable, для passedValidation
- вариант который Адель предложил, юзать независимые Request

Кейс простой, разделить логически параметры и пост-обработку для групп полей
- пейджинации
- фильтрации по дате
- фильтрации по основным сущностям приложения

Но при этом объединить, что бы технически их использование имело одну точку входа
Но если реализовывать кастомный реквест с такой логикой, то есть шанс нарушить srp. Поскольку сам реквест предназначен для валидации. Может, логику обработки данных вынести на другой уровень?
источник

SC

Sergey Chizhik in Laravel для начинающих
Александр Кондраков
Но если реализовывать кастомный реквест с такой логикой, то есть шанс нарушить srp. Поскольку сам реквест предназначен для валидации. Может, логику обработки данных вынести на другой уровень?
По идее, внутрянка passesValidation и так его нарушает, п.ч. это уже логика трансформации, а не валидации.

Меня пока греет мысль, что там нет условно сложной логики, для которой надо было бы прям отдельно выносить эту трансформацию)
источник

С

Санжар in Laravel для начинающих
Используете ли контракты для сервисов? :)
Расскажите пожалуйста.
источник

EV

Evg V. in Laravel для начинающих
Всем привет)
Подскажите пжлст - в формРеквесте выкидывает ValidationException
Я могу как то задать формат ответа, определенный для какой то группы роутов при этом? Как это правильнее реализовать, если впринципе возможно?
источник

SC

Sergey Chizhik in Laravel для начинающих
Evg V.
Всем привет)
Подскажите пжлст - в формРеквесте выкидывает ValidationException
Я могу как то задать формат ответа, определенный для какой то группы роутов при этом? Как это правильнее реализовать, если впринципе возможно?
Сделай мидлу, которая словит исключение и отдаст нужный ответ
источник

АК

Александр Кондраков... in Laravel для начинающих
Sergey Chizhik
По идее, внутрянка passesValidation и так его нарушает, п.ч. это уже логика трансформации, а не валидации.

Меня пока греет мысль, что там нет условно сложной логики, для которой надо было бы прям отдельно выносить эту трансформацию)
я бы все же реализовывал где-то в другом месте, не в мидле, а где-то в контроллере сделал вызов класса, который что-то преобразует на основании реквеста
источник

AP

Alexander Pavlenko 🌚... in Laravel для начинающих
в мидле проще, потому, что ты её вешаешь только на те роуты, которые тебе нужны
источник

EV

Evg V. in Laravel для начинающих
Sergey Chizhik
Сделай мидлу, которая словит исключение и отдаст нужный ответ
она у меня словит ValidationException чтобы не все исключения этого типа обрабатывались. То есть мидлвару повесить прямол на группу роутов и там ловить и обрабатывать?
На уровне App\Exceptions\Handler этогго не сделать?
источник

SC

Sergey Chizhik in Laravel для начинающих
Evg V.
она у меня словит ValidationException чтобы не все исключения этого типа обрабатывались. То есть мидлвару повесить прямол на группу роутов и там ловить и обрабатывать?
На уровне App\Exceptions\Handler этогго не сделать?
Ну типа, Handler идёт глобальный на всё приложение. Вряд-ли хорошая мысль там чекать текущий роут
источник