如何使用sonata_type_admin将布局包含到SonataAdminBundle选项卡中

时间:2015-07-08 18:11:48

标签: symfony sonata-admin symfony-sonata

我使用Symfony2和SonataAdminBundle,我有一个问题,我添加了一个带有sonata_type_admin实体编辑的标签。如果我去Entity编辑页面 - 好吧,但是如果我在OneToOne关系中添加字段,选项卡布局没有加载,并且所有都在一个样式中。

阅读文档对我没有帮助,我在设置中没有找到这个问题的决定。求你帮帮我。

主要对象编辑

$formMapper
        ->tab('Основная информация')
            ->with('Данные клуба', ['class' => 'col-md-8'])
                ->add('name', 'text', array('label' => 'Название'))
                ->add('alias', 'text', array('label' => 'alias в url на сайте'))
                ->add('logo', 'text', ['label' => 'Логотип'])
                ->add('description', 'textarea', ['label' => 'Описание клуба'])
            ->end()
            ->with('Основные настройки', ['class' => 'col-md-4'])
                ->add('type', 'entity', [
                        'label' => 'Тип клуба',
                        'class' => 'PbmozgSiteBundle:ClubType',
                        'query_builder' => function(EntityRepository $repository) {return $repository->createQueryBuilder('ClubType')->orderBy('ClubType.id', 'ASC');},
                        'property' => 'name',
                        'empty_value' => 'Выберите тип клуба',
                        'required' => false
                    ]
                )
                ->add('enabled', 'checkbox', ['label' => 'Включен'])
                ->add('vip', 'checkbox', ['label' => 'VIP'])
                ->add('rating', 'text', [
                        'label' => 'Рейтинг клуба',
                        'read_only' => true,
                        'disabled'  => true,
                    ]
                )
            ->end()
        ->end()
        ->tab('Контактная информация')
            ->with('Контакты')
                ->add('contacts', 'sonata_type_admin', ['required' => false, 'delete' => false, 'btn_add' => false])
            ->end()
        ->end();
    ;

Main object with sonata_type_admin

添加数据的子对象

$formMapper
        ->with('Способы связи', ['class' => 'col-md-4'])
            ->add('phones', 'collection',
                [
                    'label' => 'Телефоны',
                    'type' => new ClubPhonesListType(),
                    'required' => false,
                    'allow_add' => true,
                    'allow_delete' => true,
                    'attr' => ['class' => 'emails-list'],
                    'options' => ['label' => ' ', 'required' => false],
                ],
                [
                    'edit' => 'inline',
                    'inline' => 'table',
                    'sortable' => 'position',
                ])
            ->add('emails', 'collection',
                [
                    'label' => 'Электронная почта',
                    'type' => new ClubEmailsListType(),
                    'required' => false,
                    'allow_add' => true,
                    'allow_delete' => true,
                    'attr' => ['class' => 'emails-list'],
                    'options' => ['label' => ' ', 'required' => false],
                ],
                [
                    'edit' => 'inline',
                    'inline' => 'table',
                    'sortable' => 'position',
                ])
        ->end()
        ->with('Геоданные', ['class' => 'col-md-4'])
            ->add('latitude', 'text', ['label' => 'Широта'])
            ->add('longitude', 'text', ['label' => 'Долгота'])
            ->add('polygon', 'text', ['label' => 'Полигон на карте'])
            ->add('country', 'text', ['label' => 'Город'])
            ->add('region', 'text', ['label' => 'Регион'])
            ->add('city', 'text', ['label' => 'Город'])
            ->add('address', 'text', ['label' => 'Полный адрес'])
        ->end()
        ->with('WEB', ['class' => 'col-md-4'])
            ->add('site', 'text', ['label' => 'Адрес сайта'])
        ->end()
    ;

View in singe edit

1 个答案:

答案 0 :(得分:1)

我有同样的问题。我发现了这个:

https://sonata-project.org/bundles/admin/master/doc/reference/action_create_edit.html#formgroup-options

第8.2节:

待办事项:

how to embed one Admin in another (1:1, 1:M, M:M)

那么,我认为目前还没有解决方案? :/