0

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

  • 一般的
    • 用户名
    • 电子邮件地址
    • 普通密码
  • 团体
  • 轮廓
    • 出生日期
    • 网站
    • 性别
    • 语言环境
    • 时区
    • 电话
  • 社会的
    • 脸书用户ID
    • 脸书名称
    • 推特用户ID
    • 推特名称
    • Google+ 用户界面
    • Google+ 姓名
  • 管理

    • 角色
    • 锁定
    • 已到期
    • 启用
    • 凭据已过期
  • 安全

    • 令牌
    • 两步验证码

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

4

1 回答 1

7

在奏鸣曲用户包的配置下,config.ymlsonata_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奏鸣曲用户捆绑包

于 2015-06-08T05:48:13.747 回答