我用表单构建器制作了一个简单的注册表单。看来我在文档和文章中做了一切,但我仍然无法将密码存储在数据库中,而不是以纯文本形式存储。
以下是一些文件,请帮助我。
security.yml:http://pastebin.com/4FwBaZQK
Acme \ UserBundle \ Entity \ User:http://pastebin.com/iUGd4Cz1
Acme \ SecurityBundke \ Controller \ SecurityController:http://pastebin.com/wTVy2zE2
答案 0 :(得分:15)
查看encoding user passwords上的文档。
文档中的代码片段应该在绑定后应用于用户对象,但在它被持久化和刷新之前(因此在安全控制器的第45和46行之间):
$factory = $this->get('security.encoder_factory');
$user = new Acme\UserBundle\Entity\User();
$encoder = $factory->getEncoder($user);
$password = $encoder->encodePassword($user->getPassword(), $user->getSalt());
$user->setPassword($password);