Проверка в объекте Doctrine, где само это свойство является объектом, полученным из другого объекта с использованием ограничений

Прежде всего, я надеюсь, что этот вопрос разрешен, потому что я думаю, что это скорее вопрос, специфичный для фреймворка (Symfony). Я столкнулся со следующей проблемой:

Форма отправляется и проверяется на достоверность для создания нового «Toernooionderdeel», и в результате должны быть вызваны операции Persist и Flush Doctrine для этой сущности, пытающиеся поместить вновь созданную сущность в базу данных. Довольно простые вещи на данный момент. Но форма терпит неудачу в ->isValid(), прежде чем можно будет сохраниться и сбросить.

В моем случае ограничения применяются к свойствам различными способами с помощью аннотаций. @Assert\Valid специально используется для свойств, которые определяют отношения ManyToOne с другими объектами, и все это работает нормально, пока...

Я пытаюсь использовать @Assert\Valid для свойства "Toernooionderdeel" под названием "$toernooi", которое представляет отношение ManyToOne (Toernooionderdeel -> Toernooi). Разница между этим и другими отношениями, которые я проверяю таким же образом, заключается в том, что эта сущность «Toernooi» является производной от другой сущности, в то время как другие сущности не являются производными.

Несмотря на то, что «Toernooi» явно определен в свойстве «$toernooi» «Toernooionderdeel», ограничение определяет его как нарушение, и поэтому форма не проходит проверку.

Какие вещи я должен учитывать при выполнении этого типа проверки (с использованием ограничений) для «расширенной» конструкции объекта, подобной этой? Делал ли кто-нибудь из вас это раньше, и если да, то как?

первый вопрос, который приходит на ум: существует ли сущность Toernooi заранее или она сохраняется каскадно и имеет ли она сама ограничения, которые должны быть выполнены (тогда каскадное сохранение не удастся, так как Assert\Valid требует только, чтобы это было действительным сущность афаик... и, наверное, уже надо настойчиво?)

Jakumi 08.04.2019 15:45

@Jakumi, твой вопрос направил меня в правильном направлении. Сущность существовала заранее и имеет ограничения сама по себе. Тем самым я обнаружил, что в валидаторе формы функция getViolations выдавала массив с нарушениями, которые были связаны с сущностью Toernooi. Первопричина найдена, пришло время для решения некоторых основных проблем с сущностью Toernooi :) Спасибо, мой друг

julianhoog1989 08.04.2019 15:52
JS - События опций формы
JS - События опций формы
В продолжение предыдущей статьи CSS - стили, связанные с вводом формы , в этой статье мы будем использовать JS для взаимодействия с формами, на этот...
CSS - Стили, связанные с вводом формы
CSS - Стили, связанные с вводом формы
Общими стилями ввода для форм являются Input (включая Text, Radio, checkbox), Select и Textarea, из которых Input относительно прост, поэтому в этой...
Создание многостраничной формы заявления о приеме на работу с помощью Angular
Создание многостраничной формы заявления о приеме на работу с помощью Angular
Наличие на корпоративном сайте форм заявлений о приеме на работу, или "трудовых анкет", экономит время и деньги как для соискателей, так и для...
1
2
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда объект, указанный в свойстве («дочерний»), проверяется в родительском объекте с помощью Assert\Valid, его действительность также проверяется. Когда дочерняя сущность недействительна, родительская сущность также недействительна (транзитивна).

Конкретно для этого сценария это означает, что если дочернее свойство является объектом, все @Assert (ограничения) в этом объекте также будут проверены («утверждены»).

julianhoog1989 09.04.2019 13:49

Другие вопросы по теме