public static function getRelationships(IEntity $entity): array
	{
		$return = [[], [], []];
		foreach ($entity->getMetadata()->getProperties() as $propertyMeta) {
			if ($propertyMeta->relationship === null) {
				continue;
			}

			$name = $propertyMeta->name;
			if (!$propertyMeta->relationship->cascade['remove']) {
				$return[2][$name] = $propertyMeta;
				continue;
			}

			$rawValue = $entity->getRawValue($name);
			if ($rawValue === null && $propertyMeta->isNullable) {
				continue;
			}

			$property = $entity->getProperty($name);
			if ($property instanceof IRelationshipContainer) {
				$value = $entity->getValue($name);
				if ($value) {
					if ($propertyMeta->relationship->type === Relationship::ONE_HAS_ONE && !$propertyMeta->relationship->isMain) {
						$return[0][$name] = $value;
					} else {
						$return[1][$name] = $value;
					}
				}

			} elseif ($property instanceof IRelationshipCollection) {
				$return[0][$name] = $entity->getValue($name);
			}
		}

		return $return;
	}
public static function getRelationships(IEntity $entity): array
	{
		$return = [[], [], []];
		foreach ($entity->getMetadata()->getProperties() as $propertyMeta) {
			if ($propertyMeta->relationship === null) {
				continue;
			}

			$name = $propertyMeta->name;
			if (!$propertyMeta->relationship->cascade['remove']) {
				$return[2][$name] = $propertyMeta;
				continue;
			}

			$rawValue = $entity->getRawValue($name);
			if ($rawValue === null && $propertyMeta->isNullable) {
				continue;
			}

			$property = $entity->getProperty($name);
			if ($property instanceof IRelationshipContainer) {
				$value = $entity->getValue($name);
				if ($value) {
					if ($propertyMeta->relationship->type === Relationship::ONE_HAS_ONE && !$propertyMeta->relationship->isMain) {
						$return[0][$name] = $value;
					} else {
						$return[1][$name] = $value;
					}
				}

			} elseif ($property instanceof IRelationshipCollection) {
				$return[0][$name] = $entity->getValue($name);
			}
		}

		return $return;
	}
public static function getRelationships ( IEntity $ entity ) : array { $ return = [ [ ] , [ ] , [ ] ] ; foreach ( $ entity -> getMetadata ( ) -> getProperties ( ) as $ propertyMeta ) { if ( $ propertyMeta -> relationship === null ) { continue ; } $ name = $ propertyMeta -> name ; if ( ! $ propertyMeta -> relationship -> cascade [ 'remove' ] ) { $ return [ 2 ] [ $ name ] = $ propertyMeta ; continue ; } $ rawValue = $ entity -> getRawValue ( $ name ) ; if ( $ rawValue === null && $ propertyMeta -> isNullable ) { continue ; } $ property = $ entity -> getProperty ( $ name ) ; if ( $ property instanceof IRelationshipContainer ) { $ value = $ entity -> getValue ( $ name ) ; if ( $ value ) { if ( $ propertyMeta -> relationship -> type === Relationship :: ONE_HAS_ONE && ! $ propertyMeta -> relationship -> isMain ) { $ return [ 0 ] [ $ name ] = $ value ; } else { $ return [ 1 ] [ $ name ] = $ value ; } } } elseif ( $ property instanceof IRelationshipCollection ) { $ return [ 0 ] [ $ name ] = $ entity -> getValue ( $ name ) ; } } return $ return ; }
Returns entity relationships as array, 0 => pre, 1 => post, 2 => nulls
Returns entity relationships as array 0 = > pre 1 = > post 2 = > nulls