这样的一个模型:
class X
{
/**
* @ORM\OneToMany(targetEntity="Block", mappedBy="x",cascade={"all"}, orphanRemoval=true)
*/
private $block;
...
class Block
{
/**
* @ORM\OneToOne(targetEntity="BlockA", mappedBy="block")
*/
private $blockA;
/**
* @ORM\OneToOne(targetEntity="BlockB", mappedBy="block")
*/
private $blockB;
...
class BlockA
{
...
我可以通过Ajax以XType形式动态地将块添加到X(集合)。它正确保存。
但我不能保存嵌套在Block中的动态创建的BlockA。这总是给我一个表单验证错误:“此表单不应包含额外的字段。”。
表单验证器允许“X”动态添加“Block”,并与“BlockA”或“BlockB”建立新的关系。但是只是在一个“块”的集合中,它们都与类“BlockA”的对象有关系,或者它们都与类“BlockB”的元素有关系。验证集合时,某些“Block”具有“BlockA”关系,而其他具有“BlockB”关系(显示验证错误额外字段)是不可能的。
有什么想法吗?