我有一个看起来像这样的分页的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;
问题出在哪里?
答案 0 :(得分:2)
尝试$ this-> paginate ['Word] = array('contains'=>'','limit'=> 400);
答案 1 :(得分:0)
虽然上述答案是正确的,但范围非常有限。当返回值超过400时会发生什么?将值设置为999999999?这是糟糕的编程习惯。我们使用的机器可以执行查询,操作数据并在纳秒内执行计算。因此,我们应尽可能地行使极端精确度。这绝对是其中之一。
这个问题的一个非常简单的解决方案是运行快速查找 - >('count'),条件与分页查询相同,如果已经发出“查看全部”请求(可能是通过$传递的) _GET参数),并将限制设置为此值。