«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2021/12/23 16:55:21  №2246275 1
Помогите разобраться с валидатором симфы. Есть констрейнт UniqueEntity, но проблема в том, что мне нужно применять его не к сущности, а к DTO. Пробовал указывать нужную сущность в опции entityClass и поле для валидации в опции field, но не прокатило. Пока решил проблему созданием кастомного констрейнта, но что-то мне кажется, что я навелосипедил без необходимости.
Ответы: >>2246283 >>2246476
Аноним 2021/12/23 17:08:50  №2246283 2
Ответы: >>2246287 >>2246301
Аноним 2021/12/23 17:20:51  №2246301 3
>>2246283
Ты меня не не так. У меня нет проблем с валидацией ДТО (форм тоже, кстати, нет). Проблема исключительно в UniqueEntity и я хочу понять, то ли я не умею его готовить, то ли я все сделал правильно, написав свой констрейнт.
Ответы: >>2246303 >>2246306
Аноним 2021/12/23 17:23:48  №2246306 4
>>2246301
Ты уж определись DTO у тебя или Entity.
Ответы: >>2246312
Аноним 2021/12/23 17:26:47  №2246312 5
>>2246306
Да вроде понятно писал. Правила валидации в ДТО, из которого после успешной валидации создается сущность. Нужно проверять одноименное поле из сущности на наличие в БД.
Ответы: >>2246330
Аноним 2021/12/23 17:40:40  №2246330 6
>>2246312
Ты вообще что-то непонятное лепишь и называешь не правильными словами.
Ответы: >>2246347
Аноним 2021/12/23 18:01:27  №2246347 7
>>2246330
И шо таки тебя смутило? Не иначе поле/свойство? Я недавно в таком сраче на тему терминологии уже поучаствовал и больше не хочу. И ничего странного я не леплю, просто давно решил, что сущности должны быть всегда валидны, следовательно в них нет места правилам валидации.
Ответы: >>2246352
Аноним 2021/12/23 18:15:25  №2246352 8
>>2246347
Да я понял что ты велосипедишь, это очень увлекательно, продолжай. Просто у меня, когда говорят дто, сначала возникает мысль что человек хочет отделить бизнес логику от фреймворка, инфраструктуры и т.д. Дто из реквеста валидируют чтобы выплюнуть фронту ошибку, это задача инфраструктуры. Требование уникальности это требование бизнес логики, но одновременно и протекающая абстракция, потому, что чисто в слое БЛ эту проверку сделать нельзя.
Ответы: >>2246360 >>2246483
Аноним 2021/12/23 18:19:55  №2246360 9
>>2246352
Спасибо, продолжаю дальше.

>>Требование уникальности это требование бизнес логики, но одновременно и протекающая абстракция, потому, что чисто в слое БЛ эту проверку сделать нельзя.

Просто нужно сделать ДТО для ДТО и проблема протекания исчезнет азаза
Ответы: >>2246365
Аноним 2021/12/23 18:27:04  №2246365 10
8ztmk.png (206, 681x589)
589x681
>>2246360
Валидация моделей БЛ это задача БЛ. ДТО валидируется чтобы вернуть фронту, что он забыл заполнить требуемое поле . Поле в форме - это очевидно не забота БЛ. Вопрос о границах и направлении зависимостей.
Проблема протекания не исчезнет никогда, ты не сможешь всю таблицу загрузить в модель БЛ и проверить там.