У меня много статистических запросов, по которым надо сделать поиск и сортировку.
Модель:
Код: Выделить всё
.............................
public function relations()
{
return array(
// статистические запросы
'all_check_count'=>array(self::STAT, 'PlanObject', 'object_id'),
'violation_check_count'=>array(self::STAT, 'PlanObject', 'object_id', 'condition'=>'violations_number>0'),
'violation_count'=>array(self::STAT, 'PlanObject', 'object_id', 'select'=>'SUM(violations_number)'),
'check_products_count'=>array(self::STAT, 'PlanObject', 'object_id', 'select'=>'SUM(number_products_tested)'),
'reject_products_name_count'=>array(self::STAT, 'PlanObject', 'object_id', 'select'=>'SUM(protocols_number)'),
);
}
public function search()
{
$criteria = new CDbCriteria;
$criteria->with = array('plan_objects', 'all_check_count', 'violation_check_count', 'violation_count', 'check_products_count');
$criteria->compare('name',$this->name,true);
$criteria->compare('address',$this->address,true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>array(
'pageSize'=>20,
),
));
}
.............................