本文整理匯總了PHP中Doctrine\ORM\ORMException::invalidEntityState方法的典型用法代碼示例。如果您正苦於以下問題:PHP ORMException::invalidEntityState方法的具體用法?PHP ORMException::invalidEntityState怎麽用?PHP ORMException::invalidEntityState使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Doctrine\ORM\ORMException
的用法示例。
在下文中一共展示了ORMException::invalidEntityState方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: _doRemove
/**
* Deletes an entity as part of the current unit of work.
*
* This method is internally called during delete() cascades as it tracks
* the already visited entities to prevent infinite recursions.
*
* @param object $entity The entity to delete.
* @param array $visited The map of the already visited entities.
* @throws InvalidArgumentException If the instance is a detached entity.
*/
private function _doRemove($entity, array &$visited)
{
$oid = spl_object_hash($entity);
if (isset($visited[$oid])) {
return;
// Prevent infinite recursion
}
$visited[$oid] = $entity;
// mark visited
$class = $this->_em->getClassMetadata(get_class($entity));
$entityState = $this->getEntityState($entity);
switch ($entityState) {
case self::STATE_NEW:
case self::STATE_REMOVED:
// nothing to do
break;
case self::STATE_MANAGED:
if (isset($class->lifecycleCallbacks[Events::preRemove])) {
$class->invokeLifecycleCallbacks(Events::preRemove, $entity);
}
if ($this->_evm->hasListeners(Events::preRemove)) {
$this->_evm->dispatchEvent(Events::preRemove, new LifecycleEventArgs($entity, $this->_em));
}
$this->scheduleForDelete($entity);
break;
case self::STATE_DETACHED:
throw ORMException::detachedEntityCannotBeRemoved();
default:
throw ORMException::invalidEntityState($entityState);
}
$this->_cascadeRemove($entity, $visited);
}