简体   繁体   中英

How to remove fields from the admin user create page of Sonata User Bundle?

I have installed Sonata Admin Bundle and User Bundle in my Symfony 2.6 application. I found that the User bundle creates a bundle at src/Application/Sonata/UserBundle . When I go to the admin user creation page ( admin/sonata/user/user/create ), I found a lot of fields there:

  • General
    • Username
    • E-Mail-Address
    • Plain password
  • Groups
  • Profile
    • Date of birth
    • Firstname
    • Lastname
    • Website
    • Biography
    • Gender
    • Locale
    • Timezone
    • Phone
  • Social
    • Facebook Uid
    • Facebook Name
    • Twitter Uid
    • Twitter Name
    • Google+ Uid
    • Google+ Name
  • Management

    • Roles
    • Locked
    • Expired
    • Enabled
    • Credentails expired
  • Security

    • Token
    • Two Step Verification Code

I only need Username, E-Mail, Password, Groups, Firstname and Lastname for my admin user creation. How can I remove the other unnecessary fields from that page?

Under configuration for sonata user bundle in config.yml ie sonata_user you can override sonata user admin class and define your own admin class

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

Now create your user admin class in your extended bundle ie ApplicationSonataUserBundle and extend your class with sonata's Sonata\\UserBundle\\Admin\\Model\\UserAdmin , now in configureFormFields() define your desired fields you want to add

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 */
    }
}

Or remove some of the fields :

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

See ADVANCED CONFIGURATION for sonata user bundle

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM