0
我有以下代碼:更改爲Symfony的當前用戶的用戶對象登錄我出去
public function editAction(Request $request)
{
$user = $this->get('security.context')->getToken()->getUser();
// Get the user
$user2 = $this->getDoctrine()
->getRepository('OpinionsUserBundle:User')
->findOneById($user->id);
echo $user->email . '<br>'; // Echo [email protected]
echo $user2->email . '<br>'; // Echo [email protected]
$user2->email = 'blah';
echo $user->email; // Echoes blah
die();
}
所以我知道學說必須做與參考的東西。問題是我有一個表單,用戶可以更改他們的姓名和電子郵件,但如果電子郵件已被使用,我想顯示一個錯誤。但是,當我檢查驗證時,Symfony將數據綁定到用戶對象,所以不知何故會話正在用新的用戶對象進行更新,使我退出或更改用戶。
我該如何避免這種情況?
您的示例證明,這些不是對同一對象的引用(您已更改$ user2的電子郵件並且$ user的電子郵件保持原樣)。這是一個很好的例子,如何做到這一點。 http://stackoverflow.com/questions/9812510/symfony2-how-to-modify-the-current-users-entity-using-a-form。祝一切順利! – Cyprian