Skip to content

Commit 66f9acd

Browse files
authored
Merge pull request #633 from francoism90/master
Fix simple paginator append not working
2 parents 9a72e87 + 4d2f36f commit 66f9acd

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/QueryBuilder.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Illuminate\Database\Eloquent\Relations\Relation;
99
use Illuminate\Http\Request;
1010
use Illuminate\Pagination\LengthAwarePaginator;
11+
use Illuminate\Pagination\Paginator;
1112
use Illuminate\Support\Collection;
1213
use Illuminate\Support\Traits\ForwardsCalls;
1314
use Spatie\QueryBuilder\Concerns\AddsFieldsToQuery;
@@ -124,18 +125,18 @@ public function __call($name, $arguments)
124125
$this->addAppendsToResults($result);
125126
}
126127

127-
if ($result instanceof LengthAwarePaginator) {
128+
if ($result instanceof LengthAwarePaginator || $result instanceof Paginator) {
128129
$this->addAppendsToResults(collect($result->items()));
129130
}
130131

131132
return $result;
132133
}
133-
134+
134135
public function clone()
135136
{
136137
return clone $this;
137138
}
138-
139+
139140
public function __clone()
140141
{
141142
$this->subject = clone $this->subject;

tests/AppendTest.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Illuminate\Database\Eloquent\Model;
66
use Illuminate\Http\Request;
77
use Illuminate\Pagination\LengthAwarePaginator;
8+
use Illuminate\Pagination\Paginator;
89
use Illuminate\Support\Collection;
910
use Spatie\QueryBuilder\Exceptions\InvalidAppendQuery;
1011
use Spatie\QueryBuilder\QueryBuilder;
@@ -159,4 +160,14 @@ protected function assertPaginateAttributeLoaded(LengthAwarePaginator $collectio
159160

160161
$this->assertFalse($hasModelWithoutAttributeLoaded, "The `{$attribute}` attribute was expected but not loaded.");
161162
}
163+
164+
protected function assertSimplePaginateAttributeLoaded(Paginator $collection, string $attribute)
165+
{
166+
$hasModelWithoutAttributeLoaded = $collection
167+
->contains(function (Model $model) use ($attribute) {
168+
return ! array_key_exists($attribute, $model->toArray());
169+
});
170+
171+
$this->assertFalse($hasModelWithoutAttributeLoaded, "The `{$attribute}` attribute was expected but not loaded.");
172+
}
162173
}

0 commit comments

Comments
 (0)