Php Symfony编码密码不工作
我正在使用Symfony2。我正在尝试在我的应用程序中创建一个用户,并将其信息保存在数据库中。在任何情况下,我都可以将数据持久化到数据库中,它确实存储了数据,但它没有加密密码。这是我的密码。有人帮我吗?谢谢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
//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
设置密码,它将处理加密和加密。