-1

所以我试图设置 cakePHP 提供的 afterFind 函数来确定查询是否返回任何结果。

在测试调试输出时,这是我收到的:

Warning (2): Invalid argument supplied for foreach() [APP/Model/Form.php, line 70]    

app/Model/Form.php (line 71)
'0'

这种行为似乎很奇怪,因为它告诉我我正在提供和我的 foreach 循环中提供的无效争论,但同时它能够确定 0 是数据库上查询的正确计数。

这是位于我的 Form.php 模型中的以下函数。

public function afterFind($results, $primary = true){
     foreach ($results as $key => $val) {
         debug($val[0]['count']);
     }
}

我试图这样做是因为在我的控制器中我试图对结果进行分页,但是如果结果的计数为 0,那么我想要 $this->Session->Setflash();

据我所知,该$this->Form->Find()函数可以计算结果的总数。

计数能力不适用于$this->paginate('Form) ex. $this->paginate('count', 'Form');]

有没有其他方法可以做到这一点?

4

1 回答 1

2

你做错了。如果您自己对结果进行分页,则首先执行单独的 find('count') 查询以获取记录总数,并且通过限制您已经知道每页的最大记录数。

CakePHP 带有内置的分页功能。阅读本书的这一部分。http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html下面几段是关于构建自定义分页方法的部分,如果这是您尝试做的。

于 2013-06-11T00:50:49.067 回答