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

问题描述 投票:0回答:2

当我将其用作视图时,我有一个来自表的视图,该视图与分页(Paginator->sort())配合良好。但是当我改变 is 作为一个元素时,它会抛出错误:

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');

控制器:更改分页子句以将值返回到元素

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

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

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

为什么我的分页排序功能无法工作?我还声明了什么吗?我做了一些谷歌搜索,我发现分页器可能无法查看/查找数据模型(在某处声明),或者需要为其分配一些参数?

提前致谢:)

php cakephp element paginator
2个回答
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'); ?>

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.