From 82ec81cb08c880d39a0a01c255cf7da4f2c0574d Mon Sep 17 00:00:00 2001 From: daFish Date: Thu, 24 Jan 2013 16:43:10 +0100 Subject: [PATCH] Fixes problem with potential null values coming from nested properties. --- .../ModelToElasticaAutoTransformer.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Transformer/ModelToElasticaAutoTransformer.php b/Transformer/ModelToElasticaAutoTransformer.php index aa649e2..e65d59d 100644 --- a/Transformer/ModelToElasticaAutoTransformer.php +++ b/Transformer/ModelToElasticaAutoTransformer.php @@ -73,17 +73,26 @@ class ModelToElasticaAutoTransformer implements ModelToElasticaTransformerInterf * @param array $objects the object to convert * @param array $fields the keys we want to have in the returned array * @param Elastica_Document $parent the parent document + * * @return array */ protected function transformNested($objects, array $fields, $parent) { - $documents = array(); - foreach($objects as $object) { - $document = $this->transform($object, $fields); - $documents[] = $document->getData(); + if (is_array($objects) || $objects instanceof \Traversable || $objects instanceof \ArrayAccess) { + $documents = array(); + foreach ($objects as $object) { + $document = $this->transform($object, $fields); + $documents[] = $document->getData(); + } + + return $documents; + } elseif (null !== $objects) { + $document = $this->transform($objects, $fields); + + return $document->getData(); } - return $documents; + return array(); } /**