Sonata Admin与FOSuser集成

时间:2013-02-21 07:25:02

标签: symfony symfony-2.1 fosuserbundle sonata-admin sonata-user-bundle

我正在使用Symfony 2.1作为项目。我使用FOSUser Bundle来管理用户和为我的应用程序定制它。现在我想使用SonataAdmin Bundle进行管理使用。 它适用于普通实体(我可以做通常的CRUD事情),但对于用户,我得到一个用户列表&仪表板中的链接,但当我按照创建新建或点击编辑时,我收到500服务器错误

"Class does not exist"

我不想使用SonataUser Bundle,因为我在userBundle&上进行了很多自定义操作。我不想放松它们。

任何想法?任何一个例子?谢谢你的帮助:)

相关代码:

在config.yml中:

services:
    sonata.admin.user:
        class: Acme\AdminBundle\Admin\UserAdmin
        arguments: [null, Acme\GeneralModelBundle\Entity\User, SonataAdminBundle:CRUD]
        calls:
          - [setUserManager, ["@fos_user.user_manager"]]
        tags:
          - {name: sonata.admin , manager_type: orm, group: Users, label: User}

1 个答案:

答案 0 :(得分:5)

最后我发现了问题!! 在Sonata Admin文档中,它有一个我用过的UserAdmin的例子,在这个例子中它添加了configureFormFields函数中的组,默认情况下在FOSUser Bundle中没有启用它们。 所以当我评论那条线时,每件事情都顺利! :))

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->with('General')
            ->add('username')
            ->add('email')
            ->add('plainPassword', 'text')
        ->end()
      /******************************************************************* 
          ->with('Groups')
          ->add('groups', 'sonata_type_model', array('required' => false))
        ->end() 
       ******************************************************************/
        ->with('Management')
            ->add('roles', 'sonata_security_roles', array( 'multiple' => true))
            ->add('locked', null, array('required' => false))
            ->add('expired', null, array('required' => false))
            ->add('enabled', null, array('required' => false))
            ->add('credentialsExpired', null, array('required' => false))
        ->end()
    ;
}