设置代理对象的属性失败,必须得到实际的对象

时间:2016-05-15 01:06:58

标签: php symfony

我有这样的代码而且它不起作用:

$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();

1 个答案:

答案 0 :(得分:0)

由于在调用$accountObj方法时,实体管理器未管理(或观看flush,而不是直接从$user获取$em {1}}。

如果要在不提取其他实例的情况下更新$accountObj,则应在致电$accountObj之前告知实体经理管理flush对象:

$em->persist($accountObj);
$em->flush();