From dc10f871d676b7feb675957bc45e1716a18b268e Mon Sep 17 00:00:00 2001 From: Robert Date: Thu, 30 Jul 2015 08:26:51 +0200 Subject: [PATCH] Return no-EntityInterface $row earlier. --- src/ORM/Behavior/TranslateBehavior.php | 39 +++++++++++++------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/src/ORM/Behavior/TranslateBehavior.php b/src/ORM/Behavior/TranslateBehavior.php index ac52811bf48..373eb945c5d 100644 --- a/src/ORM/Behavior/TranslateBehavior.php +++ b/src/ORM/Behavior/TranslateBehavior.php @@ -439,26 +439,27 @@ protected function _rowMapper($results, $locale) public function groupTranslations($results) { return $results->map(function ($row) { - if ($row instanceof EntityInterface) { - $translations = (array)$row->get('_i18n'); - $grouped = new Collection($translations); - - $result = []; - foreach ($grouped->combine('field', 'content', 'locale') as $locale => $keys) { - $entityClass = $this->_table->entityClass(); - $translation = new $entityClass($keys + ['locale' => $locale], [ - 'markNew' => false, - 'useSetters' => false, - 'markClean' => true - ]); - $result[$locale] = $translation; - } - - $options = ['setter' => false, 'guard' => false]; - $row->set('_translations', $result, $options); - unset($row['_i18n']); - $row->clean(); + if (!$row instanceof EntityInterface) { + return $row; } + $translations = (array)$row->get('_i18n'); + $grouped = new Collection($translations); + + $result = []; + foreach ($grouped->combine('field', 'content', 'locale') as $locale => $keys) { + $entityClass = $this->_table->entityClass(); + $translation = new $entityClass($keys + ['locale' => $locale], [ + 'markNew' => false, + 'useSetters' => false, + 'markClean' => true + ]); + $result[$locale] = $translation; + } + + $options = ['setter' => false, 'guard' => false]; + $row->set('_translations', $result, $options); + unset($row['_i18n']); + $row->clean(); return $row; }); }