我的用户模型中有范围:
public function scopes()
{
return array(
'sumPrice'=>array(
'select'=>'SUM(`price`)',
),
);
}
我想在控制器中获得sumPrice,但我不知道这是怎么做的。我试过了:
$ sumPrice =用户::模型() - > sumPrice(); //它返回空记录(用NULL填充的用户模型)
$ sumPrice =用户::模型() - > sumPrice() - >计数(); //它返回用户的计数记录
$ sumPrice =用户::模型() - > sumPrice() - >的findAll(); //它返回用户
中的所有记录
但是没有返回总和的功能,那么如何获得呢?
解决:
$sumPrice = Yii::app()->db->createCommand('SELECT SUM(`price`) AS `sum` FROM `user`')->queryAll();
var_dump($sumPrice[0]['sum']);
答案 0 :(得分:3)
您需要在活动记录上进行统计查询,在模型上定义关系
class Post extends CActiveRecord
{
public function relations()
{
return array(
'commentCount'=>array(self::STAT, 'Comment', 'post_id'),
'categoryCount'=>array(
self::STAT, 'Category', 'post_category(post_id, category_id)'
),
);
}
}
答案 1 :(得分:0)
您可以使用ActiveRecord:
$criteria = new CDbCriteria;
$criteria->select='SUM(your_column) as sum';
$criteria->condition='your_condition';
$user = User::model()->find($criteria);
您需要在模型类中声明:public $sum;
。 (使用上面的例子。)