我在使用不同模型的字段对表数据进行排序时遇到了一些问题。
从这里开始:http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html
它说我可以添加'模型'选项但是当我尝试时:
echo $this->Paginator->sort('unit', 'Unit', array('model' => 'Unit'));
我收到此错误:
Warning (2): array_filter() expects parameter 1 to be array, null given [CORE/Cake/View/Helper/PaginatorHelper.php, line 395]
Warning (2): array_merge() [function.array-merge]: Argument #1 is not an array [CORE/Cake/View/Helper/PaginatorHelper.php, line 395]
知道这里发生了什么吗? Main / default模型是Card,我需要通过Unit模型为其中一个列标题排序。
由于
答案 0 :(得分:2)
如果您在某些表格的列表中显示记录,则可以通过以下方式使用它:
<?php echo $this->Paginator->sort('Unit.unit', 'Unit');
如果没有传递第三个参数model
选项,它将完美地工作。
答案 1 :(得分:0)
请尝试以下代码
echo $this->Paginator->sort('Unit.unit', 'Unit', array('model' => 'Unit'));
如果有的话,请告诉我。
答案 2 :(得分:0)
提醒您更新版本:CakePHP3s Paginator中不会自动加载关联模型。确保包含“sortWhitelist”选项,请参阅https://book.cakephp.org/3.0/en/controllers/components/pagination.html#control-which-fields-used-for-ordering