如何在sonata admin show视图中嵌入子实体?

时间:2015-02-03 11:04:45

标签: php symfony doctrine sonata-admin

我正在使用symfony2和sonata管理包。现在我有一个实体,它与另一个实体有OneToOne关联。我希望将子实体的show形式嵌入到父实体的show形式中。

我尝试过表单类型" sonata_type_admin"但这只给了我一个子实体的链接。

有没有人知道如何嵌入子实体的节目形式?

实体定义:

父:

class Parent
{

    /**
     * @ORM\OneToOne(targetEntity="Child", mappedBy="parent")
     */
    private $child;
}

子:

class Child
{

    /**
     * @ORM\OneToOne(targetEntity="Parent", mappedBy="child")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
     * })
     */
    private $parent;
}

1 个答案:

答案 0 :(得分:3)

由于您的父实体中有一个属性引用您的子实体,您可以在configureShowFields方法中调用子字段以显示子实体的字段

protected function configureShowFields(ShowMapper $showMapper)
{
    $showMapper
        ->with('Child Fields', array('collapsed' => true))
        ->add('child.propertyName',null,array('label'=>'Label'))
        ->add('child.anotherPropertyName',null,array('label'=>'Label'))
        ... ;
}