【问题标题】:CakePHP Pagination view IssuesCakePHP 分页视图问题
【发布时间】:2015-03-21 00:59:37
【问题描述】:

我遇到了关于 CakePHP 2.6.X 和分页的新问题;我以前从未遇到过这个问题,它只发生在尝试在视图中使用 $this->Paginator->sort(...) 时。

$this->Paginator->sort('Page.id', 'ID', array('model' => 'Page'));

我已经在控制器中完成了分页对象的正常设置

$this->Paginator->settings = array(
    'contain' => false,
    'group' => 'Page.id',
    'order' => 'Page.name ASC',
    'limit' => 20
);
$results = $this->Paginator->paginate('Page');

我在视图文件中得到了这个

警告 (2):array_filter() 期望参数 1 为数组,给定为 null [CORE/Cake/View/Helper/PaginatorHelper.php,第 435 行] 警告 (2):array_merge() [function.array-merge]:参数 #1 不是数组 [CORE/Cake/View/Helper/PaginatorHelper.php,第 435 行]

在跟踪问题时,它源于第 126 行的 params 函数,在第 131 行它返回 null,因为 request->params['paging'] 为 null。

if (!isset($this->request->params['paging']) || empty($this->request->params['paging'][$model])) {
    return null;
}

有了上面的解释,为什么 request->params['paging'] 为空?它不应该像其他部分一样填充信息吗?排序功能是否损坏或我遗漏了什么?任何帮助将不胜感激。

【问题讨论】:

    标签: php cakephp pagination


    【解决方案1】:

    您是否尝试过删除 $options 参数?如果您已经在密钥中执行此操作,则不确定是否需要指定模型。

    $this->Paginator->sort('Page.id', 'ID');
    

    【讨论】:

    • 是的,我尝试删除 $options 参数以及仅使用第一个参数“Page.id”以及“id”,这都会导致相同的错误。这很混乱。
    • 幸运的是,在完成更多部分后,它开始正常运行。非常奇怪和令人担忧的是,像这样的错误会简单地消失......我注意到,通过使用排序功能,它不会维护漂亮的 url。它使用 /admin/pages?sort=Page.id&order=asc
    猜你喜欢
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 2013-03-26
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多