gpt4 book ai didi

php - Doctrine 从数据库更新实体

转载 作者:行者123 更新时间:2023-11-29 21:03:43 24 4
gpt4 key购买 nike

我对 Doctrine 2 有一个小问题...我正在尝试更新数据库中的一个实体,但它不仅仅是更新它,它还插入另一个实体...此外,如果我什至不刷新而只是找到感兴趣的实体并设置值,它还只是在数据库中添加另一条记录,这是为什么?

变体 1(仅插入新记录)

$state = $this->getObjectManager()->find('Application\Entity\ProjectPhase\State', $pps_exists['stateId']);
$state->setValue($phaseData['value']);
$state->setCreatedat(new \DateTime($phaseData['date']));

正如你所看到的,我什至不使用刷新/合并/持久...它仍然只是插入一条记录。

public function getObjectManager() { 
$this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
}

另一方面,如果我添加并调用 $this->getObjectManager()->flush();它实际上在不必要的记录已添加到数据库后更新记录...毫无意义...我也尝试使用 DQL-Update ...与 setValue +lush() 相同的行为....提前致谢!

最佳答案

没关系,我将这些语句嵌套在两个 if block 中,一个用于“创建”,一个用于“更新”...编写 if($action = 'create') 而不是 if($action == 'create') 的愚蠢错误...这篇文章已作为所谓的“第 8 层”问题关闭:) 无论如何,谢谢

关于php - Doctrine 从数据库更新实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37000521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com