Skip to content

Commit 5042da9

Browse files
PopulatePatch now supports nullable fields.
1 parent 3c55c06 commit 5042da9

File tree

3 files changed

+30
-9
lines changed

3 files changed

+30
-9
lines changed

Filter/QueryFilter.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
*/
1313
class QueryFilter {
1414

15+
public $ignoreAuto = false;
16+
1517
public static function parse($line) {
1618
$item = new QueryFilter();
1719

@@ -51,4 +53,4 @@ public function isRelationFilter(): bool {
5153
return strpos($this->property, '.') !== false;
5254
}
5355

54-
}
56+
}

Ordering/QueryOrder.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
*/
1212
class QueryOrder {
1313

14+
public $ignoreAuto = false;
15+
1416
public static function parse($line) {
1517
$parts = explode(':', $line);
1618

@@ -21,4 +23,4 @@ public static function parse($line) {
2123
return $item;
2224
}
2325

24-
}
26+
}

ResourceModelTrait.php

+24-7
Original file line numberDiff line numberDiff line change
@@ -32,25 +32,42 @@ public function restGet($id, $queryParser) {
3232
$this->preRestGet($queryParser, $id);
3333

3434
foreach($queryParser->getIncludes() as $include) {
35-
if(!$include->ignoreAuto) $this->applyIncludeOne($include);
35+
if(!$include->ignoreAuto) {
36+
$this->applyIncludeOne($include);
37+
}
38+
}
39+
foreach($queryParser->getFilters() as $filter) {
40+
if(!$filter->ignoreAuto) {
41+
$this->applyFilter($filter);
42+
}
3643
}
37-
foreach($queryParser->getFilters() as $filter) $this->applyFilter($filter);
3844
$searchFilters = $queryParser->getSearchFilters();
3945
if(count($searchFilters)) {
4046
$this->groupStart();
41-
foreach($searchFilters as $filter) $this->applyFilter($filter);
47+
foreach($searchFilters as $filter) {
48+
if(!$filter->ignoreAuto) {
49+
$this->applyFilter($filter);
50+
}
51+
}
4252
$this->groupEnd();
4353
}
4454

4555
if($queryParser->isCount()) {
4656
$count = $this->distinct('id')->countAllResults();
47-
//Data::lastQuery();
4857
return $count;
4958
}
5059

51-
if($queryParser->hasLimit()) $this->limit($queryParser->getLimit());
52-
if($queryParser->hasOffset()) $this->offset($queryParser->getOffset());
53-
foreach($queryParser->getOrdering() as $order) $this->applyOrder($order);
60+
if($queryParser->hasLimit()) {
61+
$this->limit($queryParser->getLimit());
62+
}
63+
if($queryParser->hasOffset()) {
64+
$this->offset($queryParser->getOffset());
65+
}
66+
foreach($queryParser->getOrdering() as $order) {
67+
if(!$order->ignoreAuto) {
68+
$this->applyOrder($order);
69+
}
70+
}
5471

5572
/** @var Entity $items */
5673
$items = $this

0 commit comments

Comments
 (0)