@@ -3376,7 +3376,10 @@ public function getDocument(string $collection, string $id, array $queries = [],
33763376 [$ selects , $ permissionsAdded ] = Query::addSelect ($ selects , Query::select ('$permissions ' , system: true ));
33773377
33783378 //$selects = $this->validateSelections($collection, $selects);
3379- [$ selects , $ nestedSelections ] = $ this ->processRelationshipQueries ($ relationships , $ selects );
3379+
3380+ $ result = $ this ->processRelationshipQueries ($ relationships , $ selects );
3381+ $ selects = $ result ['queries ' ];
3382+ $ nestedSelections = $ result ['nestedSelections ' ];
33803383
33813384 $ validator = new Authorization (self ::PERMISSION_READ );
33823385 $ documentSecurity = $ collection ->getAttribute ('documentSecurity ' , false );
@@ -3474,6 +3477,10 @@ public function getDocument(string $collection, string $id, array $queries = [],
34743477 */
34753478 private function populateDocumentRelationships (Document $ collection , Document $ document , array $ selects = []): Document
34763479 {
3480+ if (empty ($ document ->getId ())){
3481+ throw new DatabaseException ('$id is a required field ' );
3482+ }
3483+
34773484 $ attributes = $ collection ->getAttribute ('attributes ' , []);
34783485
34793486 $ relationships = [];
@@ -3486,8 +3493,6 @@ private function populateDocumentRelationships(Document $collection, Document $d
34863493 }
34873494 }
34883495
3489- var_dump ($ relationships );
3490-
34913496 foreach ($ relationships as $ relationship ) {
34923497 $ key = $ relationship ['key ' ];
34933498 $ value = $ document ->getAttribute ($ key );
@@ -3603,7 +3608,12 @@ private function populateDocumentRelationships(Document $collection, Document $d
36033608
36043609 $ this ->relationshipFetchDepth ++;
36053610 $ this ->relationshipFetchStack [] = $ relationship ;
3606-
3611+ var_dump ($ relationships );
3612+ var_dump ($ side );
3613+ var_dump ($ document );
3614+ /**
3615+ * How to force $document->getId() , not to be empty?
3616+ */
36073617 $ relatedDocuments = $ this ->find ($ relatedCollection ->getId (), [
36083618 Query::equal ($ twoWayKey , [$ document ->getId ()]),
36093619 Query::limit (PHP_INT_MAX ),
@@ -6329,7 +6339,10 @@ public function find(string $collection, array $queries = [], string $forPermiss
63296339 $ cursor = empty ($ cursor ) ? [] : $ this ->encode ($ collection , $ cursor )->getArrayCopy ();
63306340
63316341 //$selects = $this->validateSelections($collection, $selects);
6332- [$ selects , $ nestedSelections ] = $ this ->processRelationshipQueries ($ relationships , $ selects );
6342+
6343+ $ result = $ this ->processRelationshipQueries ($ relationships , $ selects );
6344+ $ selects = $ result ['queries ' ];
6345+ $ nestedSelections = $ result ['nestedSelections ' ];
63336346
63346347 $ results = $ this ->adapter ->find (
63356348 $ context ,
@@ -7336,11 +7349,14 @@ private function processRelationshipQueries(
73367349
73377350 $ queries = array_values ($ queries );
73387351
7339- if ($ count > 0 && empty ($ queries )) {
7340- // $queries[] = Query::select('*');
7341- }
7352+ // if ($count > 0 && empty($queries)) {
7353+ // $queries[] = Query::select('*');
7354+ // }
73427355
7343- return [$ queries , $ nestedSelections ];
7356+ return [
7357+ 'queries ' => $ queries ,
7358+ 'nestedSelections ' => $ nestedSelections ,
7359+ ];
73447360 }
73457361
73467362 /**
0 commit comments