From 2e5c80e1f6ceb8c2f1399e99e5f08a0f264aba8c Mon Sep 17 00:00:00 2001 From: lexx Date: Wed, 22 Nov 2023 20:22:16 +0200 Subject: [PATCH] duplicate edges fix --- src/Query/Graph.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Query/Graph.php b/src/Query/Graph.php index 363c74b..16e8a62 100644 --- a/src/Query/Graph.php +++ b/src/Query/Graph.php @@ -85,7 +85,9 @@ final class Graph public function findChildren(QueryRecord $record): QueryRecord { - $recordEdges = $this->edges->filter(fn(Edge $ed) => $ed->source === $record->id)->values()->sort(fn($a, $b) => $a->rank <=> $b->rank)->values(); + $recordEdges = $this->edges->filter(fn(Edge $ed) => $ed->source === $record->id) + ->unique(fn(Edge $ed) => $ed->targetSchema.$ed->field.$ed->target.$ed->source) + ->values()->sort(fn($a, $b) => $a->rank <=> $b->rank)->values(); $groupRecordEdges = []; foreach ($recordEdges as $element) {