0

我有一个用 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

我该如何解决这个问题?

4

2 回答 2

0

你使用helpersort方法的方式是错误的,就这样试试。paginator

<?php $this->Paginator->sort('item_layout_id', __('item')); ?>

或者

<?php $this->Paginator->sort('item_layout_id', __d('your_domain_name', 'item')); ?>

有关更多详细信息,请查看此处

于 2013-11-07T09:45:21.890 回答
0

您只传递一个参数进行排序

排序功能

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
);
于 2013-11-07T11:11:29.327 回答