Symfony 4 Doctrine更新查询用作插入

时间:2018-04-24 17:19:07

标签: php dql symfony4

在过去的两天里,我一直在努力应对最简单的更新,但还没有运气。更新到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中的设置有关?我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

我删除了供应商下的所有内容并重新安装了作曲家。一切都很好