如何从Sonata User Bundle的admin用户创建页面中删除字段?

时间:2015-06-07 05:16:02

标签: symfony sonata-admin sonata-user-bundle symfony-2.6

我在Symfony 2.6应用程序中安装了Sonata Admin BundleUser Bundle。我发现User bundle在src/Application/Sonata/UserBundle创建了一个包。当我转到管理员用户创建页面(admin/sonata/user/user/create)时,我发现了很多字段:

  • 一般
    • 用户名
    • 电子邮件地址
    • 普通密码
  • 资料
    • 出生日期
    • 姓氏
    • 网站
    • 性别
    • 区域设置
    • 时区
    • 电话
  • 社会
    • Facebook Uid
    • Facebook名称
    • Twitter Uid
    • Twitter名称
    • Google+ Uid
    • Google+名称
  • 管理

    • 角色
    • 锁定
    • 过期
    • 启用
    • Credentails已过期
  • 安全

    • 令牌
    • 两步验证码

我只需要创建管理员用户的用户名,电子邮件,密码,组,名字和姓氏。如何从该页面中删除其他不必要的字段?

1 个答案:

答案 0 :(得分:7)

config.yml中的sonata用户包的配置下,即sonata_user,您可以覆盖奏鸣曲用户管理类并定义您自己的管理类

sonata_user
    admin:                  # Admin Classes
        user:
            class:          Application\Sonata\UserBundle\Admin\UserAdmin
            #Sonata\UserBundle\Admin\Entity\UserAdmin
            controller:     ApplicationSonataUserBundle:UserCURD /** you can also override CURD controller for your admin class*/
            translation:    SonataUserBundle

现在在扩展包中创建用户管理类,即ApplicationSonataUserBundle,并使用奏鸣曲Sonata\UserBundle\Admin\Model\UserAdmin扩展您的课程,现在在configureFormFields()中定义您想要添加的所需字段

use Sonata\UserBundle\Admin\Model\UserAdmin as BaseUserAdmin;
class UserAdmin extends BaseUserAdmin {
    protected function configureFormFields( FormMapper $formMapper ) {
     $formMapper->add('some field'); ...
     /** Do your stuff here */
    }
}

或删除部分字段:

use Sonata\UserBundle\Admin\Model\UserAdmin as BaseUserAdmin;
class UserAdmin extends BaseUserAdmin {
    protected function configureFormFields( FormMapper $formMapper ) {
        parent::configureFormFields($formMapper);
        $formMapper->remove('some field');
    }
}

有关奏鸣曲用户捆绑包的信息,请参阅ADVANCED CONFIGURATION