В крайнем случае ты можешь передать $request->validated(), но только в том случае, если ты на проекте работаешь один, уверен, что это не изменится и ты останешься один и готов поставить жопу, что ты туда не пихнёшь какой-то другой массив
почитай внимательно книгу что я выше скинул. думаю вопросы такие отпадут.
тут вообще всё плохо. зачем тебе тут app()? с дто ты конечно дал - берешь массив, перегоняешь его в объект и потом делаешь опять массив - зачем... =(
app чтбы создать сервисный класс экшон
я понимаю что такое app(), я спрашиваю зачем он там? передай в метод как request передал.
https://habr.com/ru/companies/otus/articles/694458/
делаю массив из массива чтобы внутри экшон класса не было ошибки когда если вдргу буду доставать ключ который он может и не быть, и внутри дто в конструкторе написал если нету ключа то нулл верни
я понимаю, мои вопросы больше риторические. ты же мог вместо array $data - в своем сервисе написать: MyDto $data ? мог. и внутри сервиса у тебя был бы DTO $data->name а так как ты сделал мог просто напрямую туда передать массив, ты ж сам сказал, что он провалидирован в форм реквесте, а значит ты ему доверяешь. но получается так, что ты ему не доверяешь в сервисе, а в конструкторе дто доверяешь... хотя это одно и тоже
в валидации не required и может без этого ключа притий и может с ключом но нулл
это всё понятно. но валидация эта никак не связана с твоим дто, это разные объекты, которые могут использоваться по разному. если б у тебя в форм реквесте был метод getDto(), еще можно было говорить о какой-то связи. но опять же, откуда в сервисе ты можешь быть уверен, что твой дто создали в форм реквесте, что в него передали провалидированные данные? не можешь. никогда. важный момент: ты когда пишешь что-либо всегда рассматривай всё вокруг как черный ящик. т.е. если ты пишешь дто, то ты не знаешь что вокруг, откуда данные приходят, как, валидные они или нет. ты должен писать классы без зависимости. а у тебя получилось, что ты написал дто, который на веру полагается, что разработчик использует данные из форм реквеста, который завтра может поменяться и ты сам можешь забыть исправить дто. это неправильно. твой код получился ненадежным. а именно зависит от валидации реквеста.
Обсуждают сегодня