簡體   English   中英

Yii計數模型與關系

[英]Yii count model with relation

我有一個模型Aziende,它與稱為Annunci的花葯模型相關(1:N),如下所示:

'annunci' => array(self::HAS_MANY,'Annunci','azienda_id'),

我想算一下有多少記錄確實有這種關系,在mySql中我會做:

SELECT count( * )
FROM `aziende` a
JOIN annunci an ON an.azienda_id = a.id

我怎么能用Yii AR模型做到這一點?

PS:我試圖找出條件查詢,但我找不到自己的方式。

在Yii關系類型中,我們有STAT為您執行此操作。 在關系中():

'annunciCount' => array(self::STAT,'Annunci','azienda_id'),

在控制器中:

$model= Model::model()->findAll();
echo 'The Number is: '.$model->annunciCount;

編輯:

    $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"

你試過嗎?

getRelated()

來自Yii api:

返回相關記錄。 此方法將返回當前記錄的相關記錄。 如果關系是HAS_ONE或BELONGS_TO,則它將返回單個對象,如果該對象不存在,則返回null。 如果關系是HAS_MANY或MANY_MANY,它將返回一個對象數組或一個空數組。

你可以使用“count($ related)”或“sizeOf($ related)”來計算。

Yii api鏈接:

http://www.yiiframework.com/doc/api/1.1/CActiveRecord#getRelated-detail

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM