小编nis*_*ooy的帖子

SonataAdminBundle无法更新用户密码

我无法通过sonataadmin仪表板更新用户密码.

我使用symfony2 FosUserBundle2.0 SonataAdminBundle(但使用SonataUserBundle)并按照文档进行操作.

MyUserBundle\Admin\UserAdmin.php class UserAdmin像这样扩展Admin

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ......
        ->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,
            )
        )
        ..
}
Run Code Online (Sandbox Code Playgroud)

使用sonataadminbundle仪表板创建新用户时没有问题,但是当我使用仪表板更新密码时,DB中的密码不会更改.

其他人可以更新但密码,我不知道为什么.没有任何错误信息.

我是symfony2的新手,有人帮我吗?

感谢kwozny,现在我修复它〜 我不改变函数configureFormFields代码,只需按照kwozny的建议,添加以下代码.我不知道为什么,但我工作!我可以更新密码,当我更新其他密码(密码字段为空)时,密码不会更改.

public function prePersist($object)
    {
        parent::prePersist($object);

    }
    public function preUpdate($object)
    {
        parent::preUpdate($object);

    }
Run Code Online (Sandbox Code Playgroud)

change-password symfony fosuserbundle sonata-admin

4
推荐指数
1
解决办法
2604
查看次数