我想使用一個實體更新行:學說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