在sonata中添加多个到一个关系的实体

时间:2017-08-19 22:19:38

标签: symfony symfony-forms sonata-admin

我使用Symfony和奏鸣曲包,我有2个实体,与ManyToOne / OneToMany关系相关,如下所示:

一个类别可以有许多SubCategory实体。为此,在Sonata的FormMapper中,当我添加一个新类别时,我想添加一个按钮来显示一个弹出窗口以创建多个SubCategory ..所以如何覆盖Sonata的Twig to去做?

CategoryAdmin

class CategoryAdmin extends AbstractAdmin
{
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->add('name')
            ->add('subcats', 'entity', array(
                'class'=> 'ProductBundle\Entity\SubCategory',
                'multiple' => true,
            ))
        ;
    } 
}

1 个答案:

答案 0 :(得分:0)

您可以添加以下内容来使用您的模板:

$formMapper
    ->add('name')
    ->add('subcats', 'entity', array(
        'class'=> 'ProductBundle\Entity\SubCategory',
        'multiple' => true,
        'attr' => array('template'=> 'your\path\to\twig')
    ))
 ;

并且此树枝应该从 base_edit_form.html.twig

延伸
{% extends 'SonataAdminBundle:CRUD:base_edit_form.html.twig' %}
    {% block field %}

        <div>
            // put your code here
        </div>

    {% endblock %}

或者您有其他可以解决问题的解决方案,您可以使用 Sonata_Type_Model

  ->add('subcats','sonata_type_model', array(
      'multiple' => true, 
      'by_reference' => false
  ))

此解决方案将为您提供一个添加和删除按钮来创建您的SubCategory