Помогите разобраться с валидатором симфы. Есть констрейнт UniqueEntity, но проблема в том, что мне нужно применять его не к сущности, а к DTO. Пробовал указывать нужную сущность в опции entityClass и поле для валидации в опции field, но не прокатило. Пока решил проблему созданием кастомного констрейнта, но что-то мне кажется, что я навелосипедил без необходимости.
>>2246283Ты меня не не так. У меня нет проблем с валидацией ДТО (форм тоже, кстати, нет). Проблема исключительно в UniqueEntity и я хочу понять, то ли я не умею его готовить, то ли я все сделал правильно, написав свой констрейнт.
>>2246306Да вроде понятно писал. Правила валидации в ДТО, из которого после успешной валидации создается сущность. Нужно проверять одноименное поле из сущности на наличие в БД.
>>2246330И шо таки тебя смутило? Не иначе поле/свойство? Я недавно в таком сраче на тему терминологии уже поучаствовал и больше не хочу. И ничего странного я не леплю, просто давно решил, что сущности должны быть всегда валидны, следовательно в них нет места правилам валидации.
>>2246347Да я понял что ты велосипедишь, это очень увлекательно, продолжай. Просто у меня, когда говорят дто, сначала возникает мысль что человек хочет отделить бизнес логику от фреймворка, инфраструктуры и т.д. Дто из реквеста валидируют чтобы выплюнуть фронту ошибку, это задача инфраструктуры. Требование уникальности это требование бизнес логики, но одновременно и протекающая абстракция, потому, что чисто в слое БЛ эту проверку сделать нельзя.
>>2246352Спасибо, продолжаю дальше.>>Требование уникальности это требование бизнес логики, но одновременно и протекающая абстракция, потому, что чисто в слое БЛ эту проверку сделать нельзя.Просто нужно сделать ДТО для ДТО и проблема протекания исчезнет азаза
>>2246360Валидация моделей БЛ это задача БЛ. ДТО валидируется чтобы вернуть фронту, что он забыл заполнить требуемое поле . Поле в форме - это очевидно не забота БЛ. Вопрос о границах и направлении зависимостей.Проблема протекания не исчезнет никогда, ты не сможешь всю таблицу загрузить в модель БЛ и проверить там.