如何在Cakephp中计算表的总行数

如何在Cakephp中计算表的总行数,php,cakephp,rowcount,Php,Cakephp,Rowcount,如何计算表的总行数并将其传递给变量?例如,我有一个产品表,其中有10个产品。我想对所有行进行计数,得到结果10并将其传递给变量$rowcount。我怎么做呢?使用 例如: $total = $this->Article->find('count'); 如果要在查询中使用条件,请传递条件数组,以下是示例代码: $pending = $this->Article->find('count', array('conditions' => array('Article.s

如何计算表的总行数并将其传递给变量?例如,我有一个产品表,其中有10个产品。我想对所有行进行计数,得到结果10并将其传递给变量$rowcount。我怎么做呢?

使用

例如:

$total = $this->Article->find('count');
如果要在查询中使用条件,请传递条件数组,以下是示例代码:

$pending = $this->Article->find('count', array('conditions' => array('Article.status' => 'pending')));

你也可以在有条件的情况下尝试

$rowcount = $this->Product->find('count', array('conditions' => array('Product.fieldName' => 'value')
你可以用find('count')方法来完成

或者,如果产品已经存在于变量$products中,则只需使用count()函数,以避免另一个Mysql查询

$this->set('rowcount',count($products));

通过使用此选项,您可以在何处使用传递条件对数据进行计数

    $assignment = TableRegistry::get('Assignment');
    $query = $assignment->find();
    $query->select(['count' => $query->func()->count('id')]);
    $query->where(['Assignment.user_id'=>$user_id]);
    $assignment = $query->toArray();
    $assignment_count = $assignment[0]->count;
    return  $assignment_count;

在CakePHP 3.x中,可以进行如下查询:

$count = $this->Students->find()->count();

这里是学生的例子模型。替换为您的型号名称。
谢谢。

条件如何?
$count = $this->Students->find()->count();
TableRegistry::get('Students')->find()->count();