我想使用一个实体更新行:学说2 ZF2如何更新行
$linker = $this->getObjectManager()->getRepository('\Schema\Entity\Link')->find('link_id', 7853);
$linker->setSampleTitle($mytitle);
$linker->setSampleDesc($mydesc);
$this->getObjectManager()->merge($linker);
$this->getObjectManager()->flush();
,但我得到:需要进行此操作打开的事务。
其实您的两个'找到( )'方法是正确的。然而,第一个“查询表”,第二个“查询数据库” - 可以这么说......就像@doeni指出的那样,您只是使用错误的函数来保存更新的实体。这是'persist()'你在找什么,而不是'merge()' – Sam
嗨,事实是,我完全删除$ this-> getObjectManager() - > merge($ linker);并使用我在下面发布的方法,它既不使用'persist'也不使用merge。我只使用了“合并”,因为我在另一篇文章中读到它,却不知道究竟是什么。是否需要使用'persist()'? – Nikitas
是的,我自己也忘记了。更新只需要刷新...持续不需要,因为这是在编辑的情况下内部处理的。 flush()将它写入数据库 – Sam