我有这段代码,它显示了所有的每日取消订阅用户。
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
是未定义的。
您没有定义,appunsubs
并且smsunsubs
因为$modelName
模型类中没有类似的字段。要获取数据,您可以根据条件创建查询并使用来执行此查询Yii::app()->db->createCommand($sql)->queryRow()
。查看以下代码:
public function getTotalUnSubs($modelName,$op)
{
$criteria = new CDbCriteria;
$criteria->select ='sum(app_unsubs) as appunsubs, sum(sms_unsubs) as smsunsubs';
//creating proper SQL
$sql = Yii::app()->db->commandBuilder->createFindCommand($modelName, $criteria)->getText();
//fetching data based on created SQL stored in $sql variable
$Subscriber = Yii::app()->db->createCommand($sql)->queryRow();
$totalunSubs = $Subscriber['appunsubs']+$Subscriber['smsunsubs'];
return $totalunSubs;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句