[英]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.