我正在使用symfony2和sonata admin bundle。现在我有一个与另一个实体具有一对一关联的实体。我希望将子实体的显示窗体嵌入到父实体的显示窗体中。
我已经尝试了表单类型"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;
}
由于父实体中有一个引用子实体的属性,因此可以在 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'))
... ;
}