Symfony 4 Doctrine 更新查询作为插入
Symfony 4 Doctrine Update Queries work as Insert
在过去的 2 天里,我一直在为最简单的更新而苦苦挣扎,但还没有成功。在我更新到 Symfony 4 之后,更新查询就像插入一样。它总是在数据库中创建一个新的实体。
甚至
$this->entityManager->flush()
插入一个新行
有 DQL
public function updateObject(CategoryGroup $categoryGroup){
return $this->getEntityManager()->createQuery(
" update App\Entity\CategoryGroup cg set cg.name = '".$categoryGroup->getName() ."' where cg.id=".$categoryGroup->getId()
)
->getResult();
}
或实体本身
/**
* @param $entity
* @return null
*/
public function saveEntity($entity){
try{
$this->entityManager->persist($entity);
$this->entityManager->flush($entity);
}catch (Exception $e){
echo $e->getMessage(), EOL;
return null;
} catch (OptimisticLockException $e) {
echo $e->getMessage(), EOL;
return null;
} catch (ORMException $e) {
echo $e->getMessage(), EOL;
return null;
}
return $entity;
}
无论我做什么,它总是接受更新查询作为新记录。这以前有用,但现在不行了。
是关于 Symfony 4 中的设置吗?我错过了什么吗?
我删除了供应商下的所有内容并重新安装了作曲家。现在一切都很好
在过去的 2 天里,我一直在为最简单的更新而苦苦挣扎,但还没有成功。在我更新到 Symfony 4 之后,更新查询就像插入一样。它总是在数据库中创建一个新的实体。
甚至
$this->entityManager->flush()
插入一个新行
有 DQL
public function updateObject(CategoryGroup $categoryGroup){
return $this->getEntityManager()->createQuery(
" update App\Entity\CategoryGroup cg set cg.name = '".$categoryGroup->getName() ."' where cg.id=".$categoryGroup->getId()
)
->getResult();
}
或实体本身
/**
* @param $entity
* @return null
*/
public function saveEntity($entity){
try{
$this->entityManager->persist($entity);
$this->entityManager->flush($entity);
}catch (Exception $e){
echo $e->getMessage(), EOL;
return null;
} catch (OptimisticLockException $e) {
echo $e->getMessage(), EOL;
return null;
} catch (ORMException $e) {
echo $e->getMessage(), EOL;
return null;
}
return $entity;
}
无论我做什么,它总是接受更新查询作为新记录。这以前有用,但现在不行了。
是关于 Symfony 4 中的设置吗?我错过了什么吗?
我删除了供应商下的所有内容并重新安装了作曲家。现在一切都很好