169 похожих чатов

Значит по вашему лучше будет, в контроллере доставать все эти

реквест данные и передать в Дто и Дто класс передать в экшон?

11 ответов

23 просмотра

В крайнем случае ты можешь передать $request->validated(), но только в том случае, если ты на проекте работаешь один, уверен, что это не изменится и ты останешься один и готов поставить жопу, что ты туда не пихнёшь какой-то другой массив

почитай внимательно книгу что я выше скинул. думаю вопросы такие отпадут.

тут вообще всё плохо. зачем тебе тут app()? с дто ты конечно дал - берешь массив, перегоняешь его в объект и потом делаешь опять массив - зачем... =(

Edige-Kozykhan Автор вопроса

app чтбы создать сервисный класс экшон

Edige Kozykhan
app чтбы создать сервисный класс экшон

я понимаю что такое app(), я спрашиваю зачем он там? передай в метод как request передал.

Edige-Kozykhan Автор вопроса
PSYTRGLES
тут вообще всё плохо. зачем тебе тут app()? с дто ...

делаю массив из массива чтобы внутри экшон класса не было ошибки когда если вдргу буду доставать ключ который он может и не быть, и внутри дто в конструкторе написал если нету ключа то нулл верни

Edige Kozykhan
делаю массив из массива чтобы внутри экшон класса ...

я понимаю, мои вопросы больше риторические. ты же мог вместо array $data - в своем сервисе написать: MyDto $data ? мог. и внутри сервиса у тебя был бы DTO $data->name а так как ты сделал мог просто напрямую туда передать массив, ты ж сам сказал, что он провалидирован в форм реквесте, а значит ты ему доверяешь. но получается так, что ты ему не доверяешь в сервисе, а в конструкторе дто доверяешь... хотя это одно и тоже

Edige-Kozykhan Автор вопроса
PSYTRGLES
я понимаю, мои вопросы больше риторические. ты же ...

в валидации не required и может без этого ключа притий и может с ключом но нулл

это всё понятно. но валидация эта никак не связана с твоим дто, это разные объекты, которые могут использоваться по разному. если б у тебя в форм реквесте был метод getDto(), еще можно было говорить о какой-то связи. но опять же, откуда в сервисе ты можешь быть уверен, что твой дто создали в форм реквесте, что в него передали провалидированные данные? не можешь. никогда. важный момент: ты когда пишешь что-либо всегда рассматривай всё вокруг как черный ящик. т.е. если ты пишешь дто, то ты не знаешь что вокруг, откуда данные приходят, как, валидные они или нет. ты должен писать классы без зависимости. а у тебя получилось, что ты написал дто, который на веру полагается, что разработчик использует данные из форм реквеста, который завтра может поменяться и ты сам можешь забыть исправить дто. это неправильно. твой код получился ненадежным. а именно зависит от валидации реквеста.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта