我有一个用 i18n 翻译的插件,index.ctp
里面有分页器排序:
<?php echo $this->Paginator->sort(__d('item', 'item_layout_id')); ?>
当我尝试对列进行排序时,它们没有按顺序排列。
这是带有 i18n 的网址:
index/sort:Layout/direction:desc
代替:
index/sort:item_layout_id/direction:desc
我该如何解决这个问题?
你使用helpersort
方法的方式是错误的,就这样试试。paginator
<?php $this->Paginator->sort('item_layout_id', __('item')); ?>
或者
<?php $this->Paginator->sort('item_layout_id', __d('your_domain_name', 'item')); ?>
有关更多详细信息,请查看此处。
排序功能:
PaginatorHelper::sort($key, $title = null, $options = array())
问题中的代码是将变量字段名传递给排序函数,它可以重写为:
<?php
$translated = __d('item', 'item_layout_id');
echo $this->Paginator->sort($translated);
这意味着如果有翻译item_layout_id
- 排序链接将不再起作用,因为该字段Layout
(来自问题)不存在。尝试按不存在的字段排序会导致参数被忽略。
要翻译排序链接的标题 - 使用 title 参数:
<?php
echo $this->Paginator->sort(
'item_layout_id', // Sort by this field
__d('item', 'item_layout_id') // Display this text
);