我有這樣的代碼,這是顯示所有的日常取消訂閱用戶..如何在yii中的cdbCriteria中使用SUM?
public function getdailyUnSubs($modelName,$op){
$currentDate = date('Ymd');
$criteria = new CDbCriteria;
$criteria->select = 'app_unsubs,sms_unsubs';
$criteria->order = 'date DESC';
$criteria->limit = 1;
$criteria->offset = 0;
$Subscriber = $modelName::model()->find($criteria);
$totalunSubs = $Subscriber['app_unsubs']+$Subscriber['sms_unsubs'];
return $totalunSubs;
}
,但現在我想所有的退訂用戶爲止。我想要所有未訂閱用戶的總和。
這是我的代碼,但它不工作。
public function getTotalUnSubs($modelName,$op){
$criteria = new CDbCriteria;
$criteria->select ='sum(app_unsubs) as appunsubs, sum(sms_unsubs) as smsunsubs';
$Subscriber = $modelName::model()->find($criteria);
$totalunSubs = $Subscriber['appunsubs']+$Subscriber['smsunsubs'];
return $totalunSubs;
}
跟它appunsubs
並沒有定義smsunsubs
。
即使我的代碼更改爲
$criteria->select ='(sum(app_unsubs)+ sum(sms_unsubs)) as totalunsubs';
和
$totalunSubs = $Subscriber['totalunsubs'];
還在說totalunsubs
是不確定的。
使用你的代碼後,它給我一個錯誤,並說'SubUsers'不存在。這是我的桌子的名字。這個錯誤是在'$ sql = Yii :: app() - > db-> commandBuilder-> createFindCommand($ modelName,$ criteria) - > getText();' –
嘗試檢查此代碼返回的內容:'Yii: :應用程序() - > DB->的getSchema() - > getTable( 'SubUsers')'。如果它返回'CDbTableSchema'對象,則將它傳遞給錯誤行,而不是'$ modelName'變量。 – aslawin
我應該在哪裏放這段代碼? 'Yii :: app() - > db-> getSchema() - > getTable('SubUsers')' –