Skip to content

Commit

Permalink
Bugfix/crash on morph relations (#12) (#13)
Browse files Browse the repository at this point in the history
  • Loading branch information
gael-connan-cybex authored Jun 7, 2024
2 parents 4691b83 + 46db78d commit c08c844
Showing 1 changed file with 15 additions and 9 deletions.
24 changes: 15 additions & 9 deletions src/ModelReflector.php
Original file line number Diff line number Diff line change
Expand Up @@ -100,17 +100,23 @@ public function getModelRelations($model, bool $forceRefresh = false): Collectio
$methodName = $reflectionMethod->getName();
$relation = $modelInstance->{$methodName}();
$relatedModel = $relation->getRelated();

$relations->put($methodName, [
'relation' => $methodName,
'returnType' => $reflectionMethod->getReturnType()->getName(),
'relatedClass' => get_class($relatedModel),
'relatedModel' => $relatedModel,
'relatedTable' => $relatedModel->getTable(),
'foreignKeyName' => $relation->getForeignKeyName(),
'qualifiedForeignKeyName' => $relation->getQualifiedForeignKeyName(),
'isRelationParent' => sprintf('%s.%s', $modelInstance->getTable(), $relation->getForeignKeyName()) !== $relation->getQualifiedForeignKeyName(),
'relation' => $methodName,
'returnType' => $reflectionMethod->getReturnType()->getName(),
]);

// Not available for some polymorph relations.
if (method_exists($relation, 'getForeignKeyName')) {
$relations->put($methodName, [
...$relations->get($methodName),
'relatedClass' => get_class($relatedModel),
'relatedModel' => $relatedModel,
'relatedTable' => $relatedModel->getTable(),
'foreignKeyName' => $relation->getForeignKeyName(),
'qualifiedForeignKeyName' => $relation->getQualifiedForeignKeyName(),
'isRelationParent' => sprintf('%s.%s', $modelInstance->getTable(), $relation->getForeignKeyName()) !== $relation->getQualifiedForeignKeyName(),
]);
}
}
}

Expand Down

0 comments on commit c08c844

Please sign in to comment.