【问题标题】:CakePHP afterFind() kills the total paginate countCakePHP afterFind() 杀死总分页数
【发布时间】:2012-01-06 06:46:39
【问题描述】:

我正在使用可包含的分页操作和 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;
    }

一共4条记录在fetch中我只删除了一个空数组(record),

数据库中的总记录数 4
使用 after find is 1 删除记录

剩余记录 3
分页限制为 2

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

【问题讨论】:

  • 进行调试($yourPaginatedData);显示正确的结果计数..
  • 不,我使用了 debug($this->paginate());在我的控制器中,它仅显示两条记录,即我在分页限制中提到的仅显示的记录。但是期望三个记录..这是调试整个分页结果的正确方法吗???
  • 尝试将您的限制更改为 10 并查看调试结果。它显示了什么..
  • 如果我评论 afterfind 函数,分页工作正常.. 猜测 afterfind 方法不会返回总分页数,因此它无法获取下一页..
  • 在我将限制更改为 10 后,它完美地显示了所有三个记录...

标签: cakephp pagination


【解决方案1】:

您似乎取消了分页所需的行。我建议您为模型制作自定义分页功能(覆盖默认 cakePHP 的分页)。在此处查看示例链接:Forced Paginate Count

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-06
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      相关资源
      最近更新 更多