Yii计数模型与关系

teo*_*one 5 php mysql count relation yii

我有一个模型Aziende,它与称为Annunci的花药模型相关(1:N),如下所示:

'annunci' => array(self::HAS_MANY,'Annunci','azienda_id'),
Run Code Online (Sandbox Code Playgroud)

我想算一下有多少记录确实有这种关系,在mySql中我会做:

SELECT count( * )
FROM `aziende` a
JOIN annunci an ON an.azienda_id = a.id
Run Code Online (Sandbox Code Playgroud)

我怎么能用Yii AR模型做到这一点?

PS:我试图找出条件查询,但我找不到自己的方式.

shg*_*Inc 6

在Yii关系类型中,我们有STAT为您执行此操作.在关系中():

'annunciCount' => array(self::STAT,'Annunci','azienda_id'),
Run Code Online (Sandbox Code Playgroud)

在控制器中:

$model= Model::model()->findAll();
echo 'The Number is: '.$model->annunciCount;
Run Code Online (Sandbox Code Playgroud)

  • 这个答案应该被接受.工作完美无瑕. (4认同)

Dan*_*ero 0

编辑:

    $criteria = new CDbCriteria();
    $criteria->condition = 'annunci.id IS NOT null';

    $aziendeList= Aziende::model()->with('annunci')->findAll($criteria);        
    $count = count($aziendeList); // Count how many "Azienda" have at least one "Annunci"
Run Code Online (Sandbox Code Playgroud)