当我将其用作视图时,我有一个来自表的视图,该视图与分页(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'); ?>
为什么我的分页排序功能无法工作?我还声明了什么吗?我做了一些谷歌搜索,我发现分页器可能无法查看/查找数据模型(在某处声明),或者需要为其分配一些参数?
提前致谢:)
查看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'); ?>
我厌倦了尝试解决这个问题。我改变了整个应用程序逻辑,现在它工作正常。元素中的分页没有问题(根本没有分页元素),而且我不必使用 requestAction 方法 - 我读到它对性能不利,应该避免。谢谢大家的帮助:)