From fdd62293ed5158dbbb1792958cad773a6d09d2ac Mon Sep 17 00:00:00 2001 From: ornicar Date: Thu, 21 Apr 2011 12:19:20 -0700 Subject: [PATCH] The automatic object transformer now normalizes values --- .../ObjectToArrayAutomaticTransformer.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Transformer/ObjectToArrayAutomaticTransformer.php b/Transformer/ObjectToArrayAutomaticTransformer.php index 9ccd1e2..45415bf 100644 --- a/Transformer/ObjectToArrayAutomaticTransformer.php +++ b/Transformer/ObjectToArrayAutomaticTransformer.php @@ -3,6 +3,7 @@ namespace FOQ\ElasticaBundle\Transformer; use RuntimeException; +use Traversable; /** * AutomaticObjectToArrayTransformer @@ -27,9 +28,23 @@ class ObjectToArrayAutomaticTransformer implements ObjectToArrayTransformerInter if (!method_exists($class, $getter)) { throw new RuntimeException(sprintf('The getter %s::%s does not exist', $class, $getter)); } - $array[$key] = $object->$getter(); + $array[$key] = $this->normalizeValue($object->$getter()); } - return $array; + return array_filter($array); + } + + public function normalizeValue($value) + { + if (is_array($value) || $value instanceof Traversable) { + $normalized = ''; + foreach ($value as $v) { + $normalized .= (string) $v; + } + } else { + $value = (string) $value; + } + + return $value; } }