用FosUserBundle和SonataAdminBundle出现Roles和password无法update的问题


我刚学习symfony2使用的是最新的fosuserbundle2.0和sonataadminbundle,不使用sonatauserbundle。
现在通过官网配置已经可以用sonataadminbundle的dashboard创建和修改user这个entity。
user是继承fosuserbundle的,现在发现2个问题:
1、用dashboard创建新用户一切正常。但是update密码的时候,password的数据就不会更新了。
2、Roles无论在创建还是在update的时候都不会正确保存数据,永远都是空的。
下面是MyUserBundle\Admin\UserAdmin.php class UserAdmin extends Admin的代码


 protected function configureFormFields(FormMapper $formMapper)
        {
            $formMapper
                ->add('email', 'email', array('label' => 'form.email', 'translation_domain' => 'FOSUserBundle'))
                ->add('username', null, array('label' => 'form.username', 'translation_domain' => 'FOSUserBundle'))
                ->add('name',null,array('label' => 'form.name', 'translation_domain' => 'FOSUserBundle'))
                ->add('plainPassword', 'repeated', array(
                    'type' => 'password',
                    'options' => array('translation_domain' => 'FOSUserBundle'),
                    'first_options' => array('label' => 'form.password'),
                    'second_options' => array('label' => 'form.password_confirmation'),
                    'invalid_message' => 'fos_user.password.mismatch',
                    'required'    => false,
                    )
                )
                ->add('enabled', 'checkbox', array(
                    'label'     => 'Enable Account',
                    'translation_domain' => 'FOSUserBundle',
                    'required'  => false,
                ))
                ->add('roles','choice',array('choices'=>$this->getConfigurationPool()->getContainer()->getParameter('security.role_hierarchy.roles'),'multiple'=>true ));
            ;
        }
    有高人指点我一下吗?谢谢啦。

sonataadminbundle symfony fosuserbundle

一方纯爷们 9 years, 9 months ago

Your Answer