我有以下代码:
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 me@example.org
echo $user2->email . '<br>'; // Echo me@example.org
$user2->email = 'blah';
echo $user->email; // Echoes blah
die();
}
所以我知道 Doctrine 必须对引用做一些事情。问题是我有一个表单,用户可以在其中更改他们的姓名和电子邮件,但如果电子邮件已经在使用中,我想显示一个错误。然而,当我检查验证时,Symfony 将数据绑定到用户对象,因此会话正在以某种方式更新为新的用户对象,让我退出或更改我的用户。
我怎样才能避免这种情况?