gpt4 book ai didi

doctrine-orm - 如何确定 Doctrine 实体是否持久化?

转载 作者:行者123 更新时间:2023-12-03 08:50:19 25 4
gpt4 key购买 nike

有没有办法确定一个参数是否是一个已经被 Doctrine 持久化的对象?类似于实体管理器方法的东西,它检查对象不是一个普通的旧对象,而是实际上已经在内存中/持久化的东西。

<?php
public function updateStatus(Entity $entity, EntityStatus $entityStatus)
{
$entityManager = $this->getEntityManager();
try {
// checking persisted entity
if (!$entityManager->isPersisted($entity)) {
throw new InvalidArgumentException('Entity is not persisted');
}
// ...
} catch (InvalidArgumentException $e) {
}
}

最佳答案

编辑:正如@Andrew Atkinson 所说,似乎

EntityManager->contains($entity)

是现在的首选方式。

上一个答案:您必须像这样使用 UnitOfWork api:
$isPersisted = \Doctrine\ORM\UnitOfWork::STATE_MANAGED === $entityManager->getUnitOfWork()->getEntityState($entity);

关于doctrine-orm - 如何确定 Doctrine 实体是否持久化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17613684/

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