Как встроить дочерние объекты в сонаты админ-шоу?

0

Я использую 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;
}
  • 0
    Можете ли вы дать определение вашей сущности?
  • 0
    Ну, мои сущности довольно просты. Я добавил самую важную часть моих сущностей в свой вопрос.
Теги:
doctrine
sonata-admin

1 ответ

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'))
        ... ;
}
  • 1
    О боже, это было так просто ... спасибо!
  • 4
    У меня тот же вопрос, но я хочу показать "childs" из отношения @ORM\OneToMany() , в этом случае child.propertyName не будет работать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню