如何在奏鸣曲管理显示视图中嵌入 child 个实体?

How to embed child entities in sonata admin show views?

我将 symfony2 与奏鸣曲管理包一起使用。现在我有一个实体与另一个实体具有 OneToOne 关联。我希望将 child 实体的显示形式嵌入到 parent 实体的显示形式中。

我已经尝试了表单类型 "sonata_type_admin",但它只给了我一个 link 到子实体。

有人知道如何嵌入子实体的显示形式吗?

实体定义:

Parent:

class Parent
{

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

Child:

class Child
{

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

由于您的父实体中有一个 属性 引用您的子实体,您可以在 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'))
        ... ;
}