2012-10-01 47 views
1

我想在Symfony中的PHP控制器中創建數據庫中的用戶。Symfony如何添加用戶

我用userInterface實現了用戶實體,用sha512編碼加起來安全防火牆。

要插入用戶我添加新的路線:

user_create: 
     pattern: /create_user/{email}/{password} 
     defaults: { _controller: MyBundleBackendBundle:Security:create } 

而且在安全控制器添加新的方法:

public function createAction($email,$password) { 

} 

我的PHP控制器動作中使用什麼樣的代碼來創建一個用戶用sha512與鹽的數據庫?

+1

你看到一個錯誤信息,或者你在找方向?你能澄清一下真正的問題在這裏嗎? –

回答

9

如何在symfony中從代碼中添加用戶:

public function createUserAction($email,$password) { 

    $factory = $this->get('security.encoder_factory'); 

    $user = new User(); 

    $encoder = $factory->getEncoder($user); 
    $user->setSalt(md5(time())); 
    $pass = $encoder->encodePassword($password, $user->getSalt()); 
    $user->setEmail($email); 
    $user->setPassword($pass); 
    $user->setActive(1); //enable or disable 

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

    return new Response('Sucessful'); 
} 
2

通過SecurityHow to implement a simple Registration Form

有一個讀如果你正在一個通用登錄/註冊系統FOSUserBundle是一個不錯的選擇。

+0

對不起,我是新手,但我不需要一個表單,這個例子是用純文本而不是sha512和salt字段,本教程如何幫助我? – David

+0

我不想爲我做代碼,我可以保存用戶實體內的任何東西,但我如何保存sha512和鹽田?存在任何預定義的方法,我將手動進行?在本手冊中我沒有看到任何解決方案。我嘗試谷歌和我失去了 – David

+0

看看http://symfony.com/doc/2.0/book/security.html#encoding-the-user-s-password – wgcrouch