我正在为 CakePHP 使用 SmoothTranslate Behavior。它使用 Cake 的 TranslateBehavior。
我有一个包含内容(“内容”)的模型。我有翻译的字段,所以我也有一个 I18n 模型。
当我想按这样的翻译字段排序时:
<?php echo $this->Paginator->sort('I18n__title.content',__('Title')); ?>
分页器组件将其删除,因为 I18n__title 是已翻译字段的自动生成别名,而不是模型(“内容”)的别名。
PaginatorComponent 第 396 行:
$correctAlias = ($object->alias == $alias);
$object->alias 是“Content”,但该列的 $alias 是“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 可以按翻译字段排序吗?