Symfony2:动态地将元素添加到双嵌入关系表单中

时间:2013-04-18 16:08:49

标签: forms validation symfony dynamic double

这样的一个模型:

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”关系(显示验证错误额外字段)是不可能的。

有什么想法吗?

0 个答案:

没有答案