首先,我希望这个问题是允许的,因为我猜它是一个特定于框架的问题(Symfony)。我遇到了以下问题:
提交表单并检查其是否有效以创建新的“Toernooionderdeel”,因此将调用Doctrine for the Entity的Persist和Flush操作,尝试将新创建的实体放入数据库。到目前为止相当基本的东西。但是表单在 - > isValid()之前失败,然后才能开始持续和刷新。
在我的例子中,约束通过注释以各种方式应用于属性。 @Assert \有效用于定义与其他实体的ManyToOne关系的属性,它一切正常,直到......
我尝试在名为'$ toernooi'的'Toernooionderdeel'属性上使用@Assert \ Valid,它表示ManyToOne关系(Toernooionderdeel - > Toernooi)。我以同样方式验证的这个和其他关系之间的区别在于,这个'Toernooi'实体是从另一个实体派生的,而其他实体则不是。
尽管很明显在'Toernooionderdeel'的'$ toernooi'属性下定义了'Toernooi',但Constraint将其视为违规,因此表单无法通过验证。
在对这样的'高级'实体构造进行此类验证(使用约束)时,我需要考虑哪些事项?你以前有没有这样做过,如果有的话,你是怎么做到的?
当通过Assert \ Valid在父对象中验证属性(“child”)中引用的实体时,也会检查其有效性。当子实体无效时,父实体也无效(传递)。