/** * @param Relation $relation * @param string $relationName * @param bool $withMappedFields * @param array $visited * @return array|bool */ private function getReferenceAsArray(Relation $relation, $relationName, $withMappedFields, array &$visited) { if (!$relation->hasReferenceLoadedFor($this, $relationName)) { return false; } /** @var Record|Record[]|RecordCollection $related */ $related = $this->get($relationName); if ($relation->isOneToMany() && $relation->isOwningSide($relationName)) { $reference = array(); foreach ($related as $relatedRecord) { $reference[] = $relatedRecord->toArray(true, $withMappedFields, $visited); } return $reference; } return $related->toArray(true, $withMappedFields, $visited); }
/** * @param Relation $relation * @param string $relationName * @return Record */ private function getOwningRecord(Relation $relation, $relationName) { return $relation->isOwningSide($relationName) ? $this->relatedRecord : $this->storedRecord; }