我对条令2有点问题。。。我正在尝试更新数据库中的一个实体,但它不仅更新它,还插入了另一个实体。。。此外,如果我甚至不刷新,而只是找到感兴趣的实体并设置值,它也只是在数据库中添加另一条记录,为什么?
变体1(仅插入新记录)
$state = $this->getObjectManager()->find('ApplicationEntityProjectPhaseState', $pps_exists['stateId']);
$state->setValue($phaseData['value']);
$state->setCreatedat(new DateTime($phaseData['date']));
正如你所看到的,我甚至不使用flush/merge/persistent。。。它仍然只是插入一个记录。
public function getObjectManager() {
$this->getServiceLocator()->get('DoctrineORMEntityManager');
}
另一方面,如果我添加并调用$this->getObjectManager()->flush();它实际上是在一个不必要的记录已经添加到数据库后更新记录。。。毫无意义。。。我也用DQL Update尝试过。。。与setValue+flush()的行为相同。。。。提前感谢!
Nevermind i将这些语句嵌套在两个if块中,一个用于"create",一个则用于"update"。。。写if($action='create')而不是if($action=='create')是一个愚蠢的错误。。。这篇文章被称为"第8层"-问题:)无论如何感谢