我有这样的代码而且它不起作用:
$em = $this->container->get('doctrine.orm.entity_manager');
$accountObj->setHasCheckpoint(1);
$em->flush();
我必须做以下事情:
$em = $this->container->get('doctrine.orm.entity_manager');
$user = $em->getRepository('UserBundle:User')->findOneById($accountObj->getId());
$user->setHasCheckpoint(1);
$em->flush();
为了获得设置检查点。为什么是这样?
accountObj只是另一个$entity->getUser();
答案 0 :(得分:0)
由于在调用$accountObj
方法时,实体管理器未管理(或观看)flush
,而不是直接从$user
获取$em
{1}}。
如果要在不提取其他实例的情况下更新$accountObj
,则应在致电$accountObj
之前告知实体经理管理flush
对象:
$em->persist($accountObj);
$em->flush();