1

我有一个带有分页的 mysql 调用,如下所示:

$this->paginate['limit'] = 400;
$this->paginate['Word']= array('contain'=>"");
$wording = $this->paginate('Word');

结果是:

SELECT `Word`.`id`, `Word`.`special`, FROM `words` AS `Word` WHERE `Word`.`writing_translation_id` = 197 LIMIT 20

所以这个 20 的限制是从某个地方出现的,我找不到在哪里。我检查了控制器和模型,但找不到任何类似的东西。如您所见,我无法将特定限制设置为 400 来覆盖它;

问题出在哪里?

4

2 回答 2

2

试试 $this->paginate['Word] = array('contain' => '', 'limit' => 400);

于 2012-05-24T13:48:19.810 回答
0

虽然上面的答案是正确的,但范围非常有限。当返回值超过 400 时会发生什么?将值设置为 999999999?这是不好的编程习惯。我们正在使用可以在纳秒内执行查询、操作数据和执行计算的机器。因此,我们应该在可能的情况下保持极高的精度。这绝对是其中一种情况。

这个问题的一个非常简单的解决方案是,如果已经发出“查看全部”请求(可能通过 $_GET 参数传递),则以与分页查询相同的条件运行快速 find->('count'),并将限制设置为此值。

于 2014-01-30T17:22:46.570 回答