当我使用它作为视图时,我从表格中得到一个视图正常工作的视图(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(要在某处声明)或者需要将一些参数分配给它?
提前致谢:)
答案 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方法 - 我读到它对性能不利并且应该避免。谢谢大家的帮助:))