This is the Person’s search function. I marked by arrows the 4 fields I want to filter:
public function search($param = array())
{
$criteria=new CDbCriteria($param);
$criteria->compare('id',$this->id);
$criteria->compare('tz',$this->tz,true);
$criteria->compare('first_name',$this->first_name,true); //<-------
$criteria->compare('last_name',$this->last_name,true); //<-------
$criteria->compare('birth_date',$this->birth_date,true);
$criteria->compare('age',$this->age);
$criteria->compare('city',$this->city,true);
$criteria->compare('address',$this->address,true);
$criteria->compare('email',$this->email,true);
$criteria->compare('phone',$this->phone,true);
$criteria->compare('level_id',$this->level_id); //<------
$criteria->compare('broughtBy_id',$this->broughtBy_id);
$criteria->compare('status_id',$this->status_id, true);
$criteria->compare('create_time',$this->create_time,true);//<--------
$criteria->compare('create_user_id',$this->create_user_id);
$criteria->compare('update_time',$this->update_time,true);
$criteria->compare('update_user_id',$this->update_user_id);
$criteria->compare('rating',$this->rating);
$criteria->compare('newsletter',$this->newsletter);
$criteria->compare('facebook_update',$this->facebook_update);
$criteria->compare('tblJobs.type',$this->job_search,true);
$criteria->with=array('tblJobs');
$criteria->group='t.id';
$criteria->together=true;
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>array('pageSize'=>10),
'sort'=>array(
'attributes'=>array(
'job_search'=>array(
'asc'=>'tblJobs.type',
'desc'=>'tblJobs.type DESC',
),
'*',
),
),
));
}
And this is person’s CgridView which is in the _form of Person_Event model:
<?php $this->widget('ext.selgridview.SelGridView', array(
'id'=>'person-grid',
'selectableRows' =>2,
'dataProvider'=>Person::model()->search(array('join'=>'INNER JOIN tbl_person_job ON tbl_person_job.person_id=id AND tbl_person_job.job_id=1','condition'=>'status_id="active"')),
'filter'=>Person::model(),
'columns'=>array(
array(
'id' => 'selectedIds',
'class'=>'CCheckBoxColumn',
),
array(
'header'=>'num',
'value'=>'$row+1',
'htmlOptions'=>array('style' => 'text-align: center;'),
),
array(
'name'=>'first_name',
'htmlOptions'=>array('style' => 'text-align: center;'),
),
array(
'name'=>'last_name',
'htmlOptions'=>array('style' => 'text-align: center;'),
),
array(
'name'=>'level_id',
'value'=>'$data->getLevelText()',
'htmlOptions'=>array('style' => 'text-align: center;'),
'filter'=>CHtml::listData(Person::model()->findAll(array('order'=>'level_id DESC')),'level_id','level_id'),
),
array(
'name'=>'create_time',
'htmlOptions'=>array('style' => 'text-align: center;'),
),
),
)); ?>