Sonata Exception получает слишком много зарегистрированных администраторов

Я получаю сообщение:

Не удалось найти действительного администратора для класса: Aman\VarshneyBundle\Entity\ArticleTable, зарегистрировать слишком много администраторов: sonata.admin.appsreview,sonata.admin.review,sonata.admin.article

Я не могу разобраться в этом вопросе.


person Aman Varshney    schedule 16.01.2014    source источник


Ответы (2)


вы должны указать опцию «admin_code» в определении вашего поля

в вашем классе администратора при создании формы

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper->add('user', 'entity', array(), array(
        'admin_code' => 'your.user.admin.service'

    ));
}

Это происходит только тогда, когда у вас есть несколько классов администратора для одной и той же сущности.

person bratek    schedule 18.01.2014
comment
создавать и редактировать используют одну и ту же форму. Если у вас есть ошибка в конфигурации формы, она будет отображаться как при создании, так и при редактировании. - person bratek; 21.01.2014
comment
Это сработало для меня. Просто убедитесь, что это 4-й аргумент для поля. - person TroodoN-Mike; 16.01.2015
comment
Внимание: для listmapper и showmapper вы должны добавить его в третий массив параметров, как это запутывает - person 11mb; 29.12.2015
comment
Не забудьте добавить имя класса в первый массив(): $formMapper->add('user', 'entity', array( 'class' => YourEntity::class ), array( 'admin_code' => 'your.user.admin.service' )); - person Jérôme Gillard; 15.02.2018

Приложу код с использованием метода configureListFields, если кому пригодится.

protected function configureListFields(ListMapper $listMapper)
{
$listMapper
    ->add('filename', null, array('admin_code' => 'your.file.admin.service', 'label' => 'File Name'))
    ->add('parent', 'sonata_type_list', array('admin_code' => 'your.file.admin.service', 'label' => 'Parent File'))
    ->add('_action', 'actions', array(
        'label' => 'Actions',
        'actions' => array(
            'download' => array(
                'template' => 'FileAdminBundle:File:list__action_download.html.twig'
            )
        )
    ));
}

Как мы видим, если у нас есть несколько полей, мы должны поместить 'admin_code' во все из них, кроме действий (если они у нас есть).

Надеюсь, поможет.

person Juan Carlos    schedule 31.03.2016