Я использую SmoothTranslate Behavior для CakePHP. Он использует Cake's TranslateBehavior.CakePHP 2.4 pagination sort on I18n переведенное поле
У меня есть модель, содержащее содержимое ("Content"). У меня есть поля, которые переведены, поэтому у меня тоже есть модель I18n.
Когда я Тринг сортировать переводное поле, как это:
<?php echo $this->Paginator->sort('I18n__title.content',__('Title')); ?>
компонент Paginator каплю это потому, что I18n__title является автоматическим генерироваться псевдонимом для преобразованной области, а не псевдоним Teh модели ("Содержание").
PaginatorComponent линии 396:
$ correctAlias = ($ object-> псевдоним == $ псевдоним);
$ object-> alias - это «Содержимое», но псевдоним $ column - «I18n__title».
Весь код PaginatorComponent:
foreach ($options['order'] as $key => $value) {
$field = $key;
$alias = $object->alias;
if (strpos($key, '.') !== false) {
list($alias, $field) = explode('.', $key);
}
$correctAlias = ($object->alias == $alias);
if ($correctAlias && $object->hasField($field)) {
$order[$object->alias . '.' . $field] = $value;
} elseif ($correctAlias && $object->hasField($key, true)) {
$order[$field] = $value;
} elseif (isset($object->{$alias}) && $object->{$alias}->hasField($field, true)) {
$order[$alias . '.' . $field] = $value;
}
}
Может CakePHP 2.x сортировать по переведенному полю?
В этом состоянии CakePhp вы не можете преобразовать поля сортировки, возможно, Cake 3.0 будет содержать это будущее в новый перевод модель. – lamasgergo