Skip to content

Commit 8d3abfa

Browse files
Deep relations
1 parent 5fc65e0 commit 8d3abfa

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

Includes/QueryInclude.php

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public static function parse($line) {
2222
$item->queryParser = QueryParser::parse($parser);
2323
} else {
2424
$item->property = $line;
25+
$item->queryParser = new QueryParser();
2526
}
2627
return $item;
2728
}

ResourceBaseModelInterface.php

+5
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,9 @@ public function applyOrder(QueryOrder $order);
4747
*/
4848
public function applyRestGetOneRelations($item);
4949

50+
/**
51+
* @return string[]
52+
*/
53+
public function ignoredRestGetOnRelations();
54+
5055
}

ResourceModelTrait.php

+11-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ public function restGet($id, $queryParser) {
3535
$this->preRestGet($queryParser, $id);
3636

3737
if($queryParser->isCount()) {
38-
return $this->countAllResults();
38+
$count = $this->distinct('id')->countAllResults();
39+
Data::lastQuery();
40+
return $count;
3941
}
4042

4143
if($queryParser->hasLimit()) $this->limit($queryParser->getLimit());
@@ -47,7 +49,7 @@ public function restGet($id, $queryParser) {
4749
->groupBy('id')
4850
->find();
4951

50-
//Data::lastQuery();
52+
Data::lastQuery();
5153

5254
if($items->exists()) {
5355
if($id) {
@@ -210,8 +212,11 @@ public function applyFilter(QueryFilter $filter) {
210212
* @param Entity $item
211213
*/
212214
public function applyRestGetOneRelations($item) {
215+
$ignored = $this->ignoredRestGetOnRelations();
213216
/** @var RelationDef $relation */
214217
foreach($this->getRelations() as $relation) {
218+
if(in_array($relation->getName(), $ignored)) continue;
219+
Data::debug(get_class($this), "running", $relation->getName());
215220
switch($relation->getType()) {
216221
case RelationDef::HasOne:
217222
$relationName = $relation->getSimpleName();
@@ -237,4 +242,8 @@ public function applyRestGetOneRelations($item) {
237242
}
238243
}
239244

245+
public function ignoredRestGetOnRelations() {
246+
return [];
247+
}
248+
240249
}

0 commit comments

Comments
 (0)