CakePHP afterFind()终止分页总计数

CakePHP afterFind()终止分页总计数,cakephp,paginate,Cakephp,Paginate,我正在使用可包含的分页操作和afterFind()来删除记录中的空数组,但这会导致分页出现问题 这是afterFind功能: function afterFind($results, $primary=false) { if ($primary == true) { foreach ($results as $key => $value) { if (empty($value['Orderstatus'])) {

我正在使用可包含的分页操作和
afterFind()
来删除记录中的空数组,但这会导致分页出现问题

这是
afterFind
功能:

function afterFind($results, $primary=false) {

        if ($primary == true) {
            foreach ($results as $key => $value) {
                if (empty($value['Orderstatus'])) { 
                    unset($results[$key]); //removing record if the orderstatus is empty
                }
            }
        }
        return $results;
    }
fetch中总共有四条记录我只删除了一个空数组(记录)

数据库中的总记录数4
使用“查找后为1”删除记录

剩余记录3
分页限制为2


它在我的第一页中显示了两条记录,但我无法访问第二页或应该在第二页中的最后一条记录。

似乎您已取消设置分页所需的行。我建议您为模型创建自定义分页函数(覆盖默认的cakePHP分页)。请参见此处的示例链接:


希望它有助于解决您的问题。

为什么不在查询中使用该条件,以便不返回没有OrderStatus的记录?

首先进行调试($yourPaginatedData);显示正确的结果计数..不,我使用了debug($this->paginate());在我的控制器中,它只显示了两条记录,这是我在paginate中提到的限制,很多记录只显示。但是他们期待着三张唱片。。这是调试整个分页结果的正确方法吗。它显示了什么..如果我对afterfind函数进行注释,分页工作正常。。guess in afterfind方法不返回总分页计数,因此无法获取下一页..在我将限制更改为10后,它完美地显示了所有三条记录。。。