Я использую symfony2 с пакетом аддитивной сонаты. Теперь у меня есть организация, у которой есть связь OneToOne с другим объектом. Я хочу, чтобы вставлять отображаемую форму дочернего объекта в форму представления родительского объекта.
Я пробовал тип формы "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'))
... ;
}
@ORM\OneToMany()
, в этом случае child.propertyName
не будет работать.