Cake\ORM\Behavior\TranslateBehavior::groupTranslations PHP Метод

groupTranslations() публичный Метод

Modifies the results from a table find in order to merge full translation records into each entity under the _translations key
public groupTranslations ( Cake\Datasource\ResultSetInterface $results ) : Cake\Collection\Collection
$results Cake\Datasource\ResultSetInterface Results to modify.
Результат Cake\Collection\Collection
    public function groupTranslations($results)
    {
        return $results->map(function ($row) {
            if (!$row instanceof EntityInterface) {
                return $row;
            }
            $translations = (array) $row->get('_i18n');
            if (empty($translations) && $row->get('_translations')) {
                return $row;
            }
            $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;
        });
    }