Nextras\Orm\Repository\RemovalHelper::getRelationships PHP Метод

getRelationships() публичный статический Метод

Returns entity relationships as array, 0 => pre, 1 => post, 2 => nulls
public static getRelationships ( Nextras\Orm\Entity\IEntity $entity ) : array
$entity Nextras\Orm\Entity\IEntity
Результат array
    public static function getRelationships(IEntity $entity)
    {
        $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;
    }