my model:
*/
class ScoreRecord extends CActiveRecord
{
public $duration;
public $start;
public $visit;
public $sumamount;
public $numberofcall;
/**
* @return string the associated database table name
*/
/**
* @return array relational rules.
*/
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'cdr1' => array(self::BELONGS_TO, 'CoreCdr', 'cdr_id'),
'types' => array(self::BELONGS_TO, 'ScoreType', 'type_id'),
'services1' => array(self::BELONGS_TO, 'CoreService', 'service_id'),
);
}
/**
* @return array customized attribute labels (name=>label)
*/
public function search2()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->with = array('cdr1.user','types','services1','cdr1');
$criteria->select='SUM(amount) AS sumamount , COUNT(user.clid) AS numberofcall ';
$criteria->condition='t.service_id = 31 and t.type_id <> 3';
$criteria->group='user.clid';
$criteria->compare('t.id',$this->id,true);
$criteria->compare('user.clid',$this->cdr_id,true);
$criteria->compare('t.service_id',$this->service_id);
// $criteria->compare('amount',$this->amount,true);
$criteria->compare('cdr1.duration',$this->duration,true);
$criteria->compare('cdr1.visit',$this->visit,true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>array(
'pageSize'=> Yii::app()->user->getState('pageSize',Yii::app()->params['defaultPageSize']),
),
));
}
and my view :
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'score-record-grid',
'dataProvider'=>$model->search2(),
'filter'=>$model,
'columns'=>array(
array('header'=>Yii::t('fieldName','ID'),
'class'=>'IndexColumn',
),
array(
'name'=>'visit',
'value'=>'$data->cdr1->visit',
'filter'=> CHtml::activeTextField($model, 'visit')
),
array(
'name'=>'amount',
'value'=>'$data->sumamount',
'filter'=> CHtml::activeTextField($model, 'amount')
),
array(
'name'=>'numberofcall',
'value'=>'$data->numberofcall',
'filter'=> CHtml::activeTextField($model, 'numberofcall')
),
array(
'class'=>'CButtonColumn',
'template'=>'',
'header'=>CHtml::dropDownList('pageSize',$pageSize,array(10=>10,20=>20,50=>50,100=>100),array(
'onchange'=>"$.fn.yiiGridView.update('score-record-grid',{ data:{pageSize: $(this).val() }})",
))
),
),
));
now, i want that 1 filter on "numberofcall" & "amount" fileds.
thanks