与元素一起使用时的分页错误

时间:2012-02-05 18:07:43

标签: cakephp element paginator

当我使用它作为视图时,我从表格中得到一个视图正常工作的视图(Paginator-> sort())。但是当我改变它作为一个元素时,它会抛出错误:

Warning (2): array_merge() [function.array-merge]: Argument #1 is not an array [CORE\cake\libs\view\helpers\paginator.php, line 194]<br>
Warning (2): array_merge() [function.array-merge]: Argument #2 is not an array [CORE\cake\libs\view\helpers\paginator.php, line 194]<br>
Warning (2): array_merge() [function.array-merge]: Argument #1 is not an array [CORE\cake\libs\view\helpers\paginator.php, line 378]<br>
Warning (2): array_merge() [function.array-merge]: Argument #2 is not an array [CORE\cake\libs\view\helpers\paginator.php, line 378]<br>

代码与以前完全相同,但我当然改变了一些代码如下:

模型:添加了下一个声明

var $helpers = array('Paginator');

Controller:更改了paginate子句以将值返回到元素

return $collaborations = $this->paginate('Collaboration');

元素:将请求操作添加到元素的开头,另一行是我如何调用parination sort

<?php $collaborations = $this->requestAction('/collaborations/calendar'); ?>
<?php echo $this->Paginator->sort('Pvm','Collaboration.start_date'); ?>

为什么我的分页排序功能不起作用?我是否已声明其他内容?我做了一些谷歌搜索,我发现分页器可能有问题看/找到datamodel(要在某处声明)或者需要将一些参数分配给它?

提前致谢:)

2 个答案:

答案 0 :(得分:0)

检查cakephp书:http://book.cakephp.org/1.3/en/view/1231/Pagination

您必须在控制器中设置paginate变量,然后使用方法paginate填充视图中的数据。

应在控制器中配置助手,而不是在模型中。

示例,您的控制器类应如下所示:

class ColaborationController extends AppController {
    var $paginate = array( 'limit'=>25, 'order'=>array('Colaboration.start_date'=>'asc'));

    function some_action() {
        $this->set('collaborations', $this->paginate('Collaboration'));
    }
}

您的观点:

<?php echo $this->Paginator->sort('Pvm','collaboration.start_date'); ?>

答案 1 :(得分:0)

我无聊试图解决这个问题。我改变了整个应用程序逻辑,现在它工作正常。元素中的分页没有问题(根本没有分页元素)而且我不必使用requestAction方法 - 我读到它对性能不利并且应该避免。谢谢大家的帮助:))