Skip to content

Commit 10c148e

Browse files
authored
Hotfix/Unable to unset criteria page object. (#5)
1 parent 83727ce commit 10c148e

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/Infrastructure/Laravel/Persistence/EloquentCriteriaParser.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,11 @@ private function applyOrdering(Builder $builder, Order $ordering): Builder
171171
*/
172172
private function applyPage(Builder $builder, Page $page): Builder
173173
{
174-
$builder = $builder->limit($page->limit());
174+
if ($page->limit() > 0) {
175+
$builder = $builder->limit($page->limit());
176+
$builder = $builder->offset($page->offset());
177+
}
175178

176-
return $builder->offset($page->offset());
179+
return $builder;
177180
}
178181
}

tests/Integration/EloquentCriteriaParserTest.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,3 +242,14 @@
242242
expect($builder->toRawSql())
243243
->toBe('select * from "users" where "first_name" = \'Vincent\' or ("last_name" = \'Winnfield\') limit 25 offset 0');
244244
});
245+
246+
test('EloquentCriteriaParser should ignore Page object if limit is 0.', function () {
247+
$parser = new EloquentCriteriaParser();
248+
249+
$criteria = Criteria::default()
250+
->withPageLimit(0);
251+
$builder = $parser->applyCriteria(UserDatabaseSource::query(), $criteria);
252+
253+
expect($builder->toRawSql())
254+
->toBe('select * from "users"');
255+
});

0 commit comments

Comments
 (0)