繁体   English   中英

返回的记录数,不考虑Limit cakePHP 3

[英]Count of no of record returned, without considering Limit cakePHP 3

我希望当前查询的数据库中没有可用的记录数,但不考虑LIMIT。

$this->Orders->find('all')
             ->where(['order_quantity']=>5)
             ->LIMIT(5);

考虑一下,上述查询没有50条记录。 因此,只希望当前查询没有可用的记录数。 由于限制,我不能使用'count()',它总是会返回总数不超过5的可用记录总数。cakePHP中是否有解决方案?

CakePHP 3书中的本页,准确地解释了您的问题的答案,包括其工作方式和原因:

返回记录总数

使用单个查询对象,可以获得针对一组条件找到的总行数:

 $total = $articles->find()->where(['is_active' => true])->count(); 

count()方法将忽略limit,offset和page子句,因此以下内容将返回相同的结果:

 $total = $articles->find()->where(['is_active' => true])->limit(10)->count(); 

当您需要预先知道结果集的总大小而不必构造另一个Query对象时,这很有用。 同样,使用count()方法时,所有结果格式和map-reduce例程都将被忽略。

请注意有关“ ...将忽略限制,偏移量和页面子句”的位

所以尝试这样的事情:

$data = $articles->find()->where(['is_active' => true])->limit(10);
$count = $data->count();

我认为您不熟悉find在查找中的使用。 因此,我建议您研究文档

查询中的限制意味着即使查询实际有50个数据,查询也只会显示前5个数据。

因此,为了获取实际数据,您只需删除限制并在代码中进行一些更改,如下所示:

$this->Orders->find('count')->where(['order_quantity' => 5]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM