我对Doctrine 2有一点问题...我正在尝试更新我的数据库中的实体,但不仅仅更新它,它还插入另一个实体...此外,如果我甚至不刷新而只是找到感兴趣的实体并设置它也只是在数据库中添加另一条记录为什么呢?
变式1(仅插入新记录)
$state = $this->getObjectManager()->find('Application\Entity\ProjectPhase\State', $pps_exists['stateId']);
$state->setValue($phaseData['value']);
$state->setCreatedat(new \DateTime($phaseData['date']));
正如你所看到的,我甚至不使用flush / merge / persist ......它仍然只是插入一条记录。
public function getObjectManager() {
$this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
}
另一方面,如果我添加并调用$ this-> getObjectManager() - > flush(); 它实际上在已经将不必要的记录添加到db之后更新记录...没有意义......我也尝试使用DQL-Update ...与setValue + flush()相同的行为.... 提前谢谢!
答案 0 :(得分:0)
没关系,我将这些语句嵌套在两个中,如果一个块为"创建"一个用于"更新" ...愚蠢的错误写作if($ action =' create')而不是if($ action ==' create')...此帖子被关闭为所谓的&# 34;第8层" -issue :)无论如何谢谢