次のコードがあります。
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 はデータをユーザー オブジェクトにバインドするため、何らかの方法でセッションが新しいユーザー オブジェクトで更新され、ログアウトしたり、ユーザーを変更したりします。
どうすればこれを回避できますか?