/** * gets relation instance * * @param string $name * @param array $relationData * @return \Dive\Relation\Relation */ private function getRelationInstance($name, array $relationData) { if (!isset($this->relations[$name])) { $owningTable = $relationData['owningTable']; $owningAlias = $relationData['owningAlias']; $owningField = $relationData['owningField']; $referencedTable = $relationData['refTable']; $referencedAlias = $relationData['refAlias']; $referencedField = $relationData['refField']; $type = $relationData['type']; $onDelete = !empty($relationData['onDelete']) ? $relationData['onDelete'] : PlatformInterface::RESTRICT; $onUpdate = !empty($relationData['onUpdate']) ? $relationData['onUpdate'] : PlatformInterface::RESTRICT; $relation = new Relation($owningAlias, $owningTable, $owningField, $referencedAlias, $referencedTable, $referencedField, $type, $onDelete, $onUpdate); if (isset($relationData['orderBy'])) { $relation->setOrderBy($relationData['orderBy']); } $this->relations[$name] = $relation; } return $this->relations[$name]; }