This commit is contained in:
Toby Zerner 2021-01-17 12:49:27 +10:30
parent 74a6edf300
commit 5b0a3acff9
1 changed files with 3 additions and 1 deletions

View File

@ -15,6 +15,7 @@ use Closure;
use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasOneThrough;
use InvalidArgumentException; use InvalidArgumentException;
use Tobyz\JsonApiServer\Schema\Attribute; use Tobyz\JsonApiServer\Schema\Attribute;
use Tobyz\JsonApiServer\Schema\HasMany; use Tobyz\JsonApiServer\Schema\HasMany;
@ -176,8 +177,9 @@ class EloquentAdapter implements AdapterInterface
public function filterByHasOne($query, HasOne $relationship, array $ids): void public function filterByHasOne($query, HasOne $relationship, array $ids): void
{ {
$relation = $this->getEloquentRelation($query->getModel(), $relationship); $relation = $this->getEloquentRelation($query->getModel(), $relationship);
$column = $relation instanceof HasOneThrough ? $relation->getQualifiedParentKeyName() : $relation->getQualifiedForeignKeyName();
$query->whereIn($relation->getQualifiedForeignKeyName(), $ids); $query->whereIn($column, $ids);
} }
public function filterByHasMany($query, HasMany $relationship, array $ids): void public function filterByHasMany($query, HasMany $relationship, array $ids): void