Doctrine\ORM\UnitOfWork::cascadeDetach PHP 메소드

cascadeDetach() 개인적인 메소드

Cascades a detach operation to associated entities.
private cascadeDetach ( object $entity, array &$visited )
$entity object
$visited array
    private function cascadeDetach($entity, array &$visited)
    {
        $class = $this->em->getClassMetadata(get_class($entity));
        foreach ($class->associationMappings as $assoc) {
            if ( ! $assoc['isCascadeDetach']) {
                continue;
            }
            $relatedEntities = $class->reflFields[$assoc['fieldName']]->getValue($entity);
            if ($relatedEntities instanceof Collection) {
                if ($relatedEntities instanceof PersistentCollection) {
                    // Unwrap so that foreach() does not initialize
                    $relatedEntities = $relatedEntities->unwrap();
                }
                foreach ($relatedEntities as $relatedEntity) {
                    $this->doDetach($relatedEntity, $visited);
                }
            } else if ($relatedEntities !== null) {
                $this->doDetach($relatedEntities, $visited);
            }
        }
    }