From d3fe82a6a389c5b3a0a044d3b751ce48d5fc26a9 Mon Sep 17 00:00:00 2001 From: Ivo Valchev Date: Fri, 7 Aug 2020 14:01:28 +0200 Subject: [PATCH] Optimise `selected` filter to fetch records with a single DB call --- src/Twig/FieldExtension.php | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/Twig/FieldExtension.php b/src/Twig/FieldExtension.php index 15824f3a3..4046d9d6b 100644 --- a/src/Twig/FieldExtension.php +++ b/src/Twig/FieldExtension.php @@ -95,14 +95,8 @@ public function getSelected(Field\SelectField $field, $returnsingle = false, $re ); } - $records = []; - foreach ($field->getValue() as $id) { - $record = $this->contentRepository->findOneBy(['id' => (int) $id]); - - if ($record) { - $records[] = $record; - } - } + $ids = $field->getValue(); + $records = $this->contentRepository->findBy(['id' => $ids]); // Find records by their respective ids if ($returnsingle || (! $returnarray && $definition->get('multiple') === false)) { return current($records);