Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony编码密码不工作_Php_Symfony_Doctrine Orm_Password Protection - Fatal编程技术网

Php Symfony编码密码不工作

Php Symfony编码密码不工作,php,symfony,doctrine-orm,password-protection,Php,Symfony,Doctrine Orm,Password Protection,我正在使用Symfony2。我正在尝试在我的应用程序中创建一个用户,并将其信息保存在数据库中。在任何情况下,我都可以将数据持久化到数据库中,它确实存储了数据,但它没有加密密码。这是我的密码。有人帮我吗?谢谢 //search form $search_form = $this->createForm(new UserSearchType()); //user form $user = new User(); $form = $this->cr

我正在使用Symfony2。我正在尝试在我的应用程序中创建一个用户,并将其信息保存在数据库中。在任何情况下,我都可以将数据持久化到数据库中,它确实存储了数据,但它没有加密密码。这是我的密码。有人帮我吗?谢谢

    //search form
    $search_form = $this->createForm(new UserSearchType());

    //user form
    $user = new User();
    $form = $this->createForm(new UserAdminType(), $user);

    if ($request->isMethod('POST')) {

        //get the Account of this user and set it on the user being created.             
        $account = $this->getUser()->getAccount();
        $user->setAccount($account);

        //encode password and set on user
        $factory = $this->get('security.encoder_factory');
        $encoder = $factory->getEncoder($user);
        $password = $encoder->encodePassword($user->getPassword(), $user->getSalt());
        $user->setPassword($password);

        $form->bind($request);
        if ($form->isValid()) {

            $em = $this->getDoctrine()->getManager();
            $em->persist($user);
            $em->flush();

            //set flash message
            $message = "User ".$user->getUsername()." has been created with password ". $password;
            $this->get('session')->getFlashBag()->add('message', $message);

            return $this->redirect($this->generateUrl('user_list'));
        }
    }

    return array(
        'heading' => 'Create User',
        'form' => $form->createView(),
        'search_form' => $search_form->createView(),
    );

下面是我更新密码的步骤

 $password = $postData['password']['first'];
 $factory = $this->get('security.encoder_factory');
 $encoder = $factory->getEncoder($user);
 $password = $encoder->encodePassword($password, $user->getSalt());

有没有办法调试这行下面的$user var(比如var_dump):$user->setPassword($password)??显示您的
security.yml
(或等效格式)文件是否使用FOSUserBundle?如果是这样,您可以使用
setPlainPassword
设置密码,它将处理加密和加密。