忽略CakePHP 3.x中LIMIT子句的查询分页

忽略CakePHP 3.x中LIMIT子句的查询分页,cakephp,orm,pagination,cakephp-3.0,Cakephp,Orm,Pagination,Cakephp 3.0,我试图创建一个只返回2个结果的查询,通过遵循文档,我可以运行该查询,但是默认情况下,limit仍然设置为20 以下是如何构建查询: $upcomingMeetings = $this->Meetings->find('all') ->where(['Meetings.user_id' => $this->Auth->User('user_id')]) ->andWhere(["Meetings.date >= " => date('

我试图创建一个只返回2个结果的查询,通过遵循文档,我可以运行该查询,但是默认情况下,
limit
仍然设置为
20

以下是如何构建查询:

$upcomingMeetings = $this->Meetings->find('all')
  ->where(['Meetings.user_id' => $this->Auth->User('user_id')])
  ->andWhere(["Meetings.date >= " =>  date('Y-m-d') ])
  ->order(['Meetings.date' => 'ASC'])
  ->limit(2);
将结果传递给视图,如下所示:

$this->set('upcomingMeetings', $this->paginate($upcomingMeetings)); 
以下是正在数据库上运行的查询:

SELECT 
  Meetings.id AS `Meetings__id`, 
  Meetings.date AS `Meetings__date`, 
  Meetings.user_id AS `Meetings__user_id`, 
FROM 
  meetings Meetings 
WHERE 
  (
    Meetings.group_id = 7 
    AND Meetings.date >= '2016-01-14'
  ) 
ORDER BY 
  Meetings.date ASC 
LIMIT 
  20 OFFSET 0

非常感谢您的帮助或指导。

在对
查询
对象进行分页时,CakePHP将忽略
limit()
子句,而是使用
$paginate
配置数组中定义的值

这是检查后可以得出的结论

尝试将以下内容添加到控制器:

public $paginate = [
    'limit' => 2,
];

没有默认限制,除非您使用例如分页器。如果是这种情况,那么请提及这一点,并显示有关分页配置的相关代码。应该可以。你确定你真的在执行你给我们看的代码吗?您是否在其他任何地方对
$upcomingMeetings
应用任何修改?您能否发布您在debugkit中看到的已执行SQL查询?非常感谢您的快速回复。我刚刚用您要求的信息更新了问题。