Skip to content

Commit 2d59c63

Browse files
feat(laravel): belongs to many relations (#6818)
1 parent eb53218 commit 2d59c63

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/Laravel/Eloquent/State/LinksHandler.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,17 @@ private function buildQuery(Builder $builder, Link $link, mixed $identifier): Bu
103103
if ($from = $link->getFromProperty()) {
104104
$relation = $this->application->make($link->getFromClass());
105105

106+
if (!method_exists($relation->{$from}(), 'getQualifiedForeignKeyName') && method_exists($relation->{$from}(), 'getQualifiedForeignPivotKeyName')) {
107+
/** @var \Illuminate\Database\Eloquent\Relations\BelongsToMany<Model, Model> $relation */
108+
/** @var \Illuminate\Database\Eloquent\Relations\BelongsToMany<Model, Model> $relation_query */
109+
$relation_query = $relation->{$from}();
110+
111+
return $builder->getModel()->join(
112+
$relation_query->getTable(), $relation->{$from}()->getQualifiedForeignPivotKeyName(), $builder->getModel()->getQualifiedKeyName())
113+
->where($relation->{$from}()->getQualifiedForeignPivotKeyName(),
114+
$identifier);
115+
}
116+
106117
return $builder->getModel()->where($relation->{$from}()->getQualifiedForeignKeyName(), $identifier);
107118
}
108119

0 commit comments

Comments
 (0)