我正在使用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;
}
答案 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'))
... ;
}