Doctrine\ORM\UnitOfWork::cascadePersist PHP Method

cascadePersist() private method

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