GraphAware\Neo4j\OGM\UnitOfWork::traverseRelationshipEntities PHP Method

traverseRelationshipEntities() public method

public traverseRelationshipEntities ( $entity, array &$visited = [] )
$visited array
    public function traverseRelationshipEntities($entity, array &$visited = [])
    {
        $classMetadata = $this->entityManager->getClassMetadataFor(get_class($entity));
        foreach ($classMetadata->getRelationshipEntities() as $relationshipMetadata) {
            $value = $relationshipMetadata->getValue($entity);
            if (null === $value || $relationshipMetadata->isCollection() && count($value) === 0) {
                continue;
            }
            if ($relationshipMetadata->isCollection()) {
                foreach ($value as $v) {
                    $this->persistRelationshipEntity($v, get_class($entity));
                    $rem = $this->entityManager->getRelationshipEntityMetadata(get_class($v));
                    $toPersistProperty = $rem->getStartNode() === $classMetadata->getClassName() ? $rem->getEndNodeValue($v) : $rem->getStartNodeValue($v);
                    $this->doPersist($toPersistProperty, $visited);
                }
            } else {
                $this->persistRelationshipEntity($value, get_class($entity));
                $rem = $this->entityManager->getRelationshipEntityMetadata(get_class($value));
                $toPersistProperty = $rem->getStartNode() === $classMetadata->getClassName() ? $rem->getEndNodeValue($value) : $rem->getStartNodeValue($value);
                $this->doPersist($toPersistProperty, $visited);
            }
        }
    }