то сразу получишь экспешен что нет такого метода validated, потому что он есть только у валидатора, в твоем случае у FormRequest, а ты тип указал в методе какой? простой Request.
потом, если ты передашь случайно другой FormRequest - он пройдет возможно, валидацию, но создание дто грохнется из-за того что данные не подходят, в лучшем случае, в худшем ты не узнаешь об ошибке.
Так, допустим, я меняю в дто тип парамерта с Request на StoreRequest (у которого мои правила валидации). Получается, что, условно UpdateRequest, который тоже extends FormRequest, я прокинуть в StoreBookDTO::fromRequest() уже не смогу, пусть даже там и все правила валидации те же. Да, он может провалидироваться в дто, но он туда не может попасть тк отсекается на уровне типа параметра fromRequest(), так что риск отпадает.
и третий момент: я могу взять new Dto('fake string', false, 'invalide date') и т.д. и создать дто с невалидными данными, которые ты попробуешь, например, записать в бд.
Тут, получается нужно кастомную валидацию внутри дто писать? Так тут уже можно и в фабрику выносить. Или как это делается?
по поводу учебный/не учебный проект - не важно, относится надо одинаково
Абсолютно согласен, тем более, что у меня кроме этого учебного никаких и не было. Тут дело в том, что лето скоро кончается, проект - специально заваленная практика, которую нужно пересдавать. А то, чем я тут занимаюсь, чуть больше того, что от меня требуется. Походу, выйдет проект с дто, паттернами проектирования, пакетами и пр. но без верстки. Там я преподавателю не загоню про высокие материи))
Знакомому накидал все в кучу в контроллерах за пару недель, и 3 месяц грызу ларавел уже сотый раз переделывая то, что есть.
В общем вы правы, но конкретно в этом случае - better done than perfect.
> выйдет проект с дто, паттернами проектирования, пакетами и пр а надо было hello world вывести в рамочке 😂
Тут, получается нужно кастомную валидацию внутри дто писать? сложный момент, почитай Аделя, что сегодня скидывал ссылки. так и до VO можно дойти. прям однозначного ответа я не дам, кто-то делает валидацию в дто, что имхо, неправильно, кто-то валидирует в сервисах. я обычно закрываю прямое создание дто, что бы можно было создать только через объект валидатора. правила хранятся в самом дто.
А через валидатор ты как DTO создаешь? Есть пример?
https://t.me/laravel_web/995553 ну и там выше ниже почитай
Мне в таком подходе не очень нравится, что ключи в rules должны быть 1 в 1 как поля в Dto.
Обсуждают сегодня