Skip to content

Commit 4c3b44f

Browse files
SychO9tobyzerner
andauthored
Fix serialization for MorphTo relationships (#97)
* feat: `MorphTo` serialization * Run Prettier * chore: use `createModelByType` * Remove unnecessary line --------- Co-authored-by: SychO9 <[email protected]> Co-authored-by: Toby Zerner <[email protected]>
1 parent 21248fd commit 4c3b44f

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/Laravel/EloquentResource.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Illuminate\Database\Eloquent\Model;
88
use Illuminate\Database\Eloquent\Relations\BelongsTo;
99
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
10+
use Illuminate\Database\Eloquent\Relations\MorphTo;
1011
use Illuminate\Support\Str;
1112
use Tobyz\JsonApiServer\Context;
1213
use Tobyz\JsonApiServer\Pagination\OffsetPagination;
@@ -76,7 +77,13 @@ protected function getRelationshipValue(Model $model, Relationship $field, Conte
7677
// related model with the value of the ID filled.
7778
if ($relation instanceof BelongsTo && $context->include === null) {
7879
if ($key = $model->getAttribute($relation->getForeignKeyName())) {
79-
$related = $relation->getRelated();
80+
if ($relation instanceof MorphTo) {
81+
$morphType = $model->{$relation->getMorphType()};
82+
$related = $relation->createModelByType($morphType);
83+
} else {
84+
$related = $relation->getRelated();
85+
}
86+
8087
return $related->newInstance()->forceFill([$related->getKeyName() => $key]);
8188
}
8289

0 commit comments

Comments
 (0)