Cgridview Не Работает Dropdown-Фильтр

Сделал dropdown фильтр, он отображается, при выборе уходит AJAX запрос, но на данные это не влияет… я подозреваю что проблема в моделе в методе search(), но где конкретно…

Если в search() вместо $criteria->compare(‘client_id’,$this->client_id); поставить $criteria->compare(‘client_id’,$_REQUEST[‘Tasks’][‘client_id’]); то фильтр работает как положено, видимо $this->client_id не проходит валидацию хотя он у меня прописан как ‘safe’

VIEW:




$this->widget('zii.widgets.grid.CGridView', array(

    'dataProvider'=>$model->search(),

    'filter' => $model,

    'columns'=>array(

        array(

            'name' => 'client_id',

            'filter' => CHtml::listData(Client::model()->findAll(), 'client_id', 'name'),

            'value'=>'$data->client->name'

        ),

        'task'

     )

));



MODEL:




	public function rules()

	{

		// NOTE: you should only define rules for those attributes that

		// will receive user inputs.

		return array(

			array('client_id, task', 'required'),

			array('client_id, complete', 'numerical', 'integerOnly'=>true),

			array('task', 'length', 'max'=>5000),

            array('start_date','default',

                'value'=>new CDbExpression('NOW()'),

                'setOnEmpty'=>false,'on'=>'insert'),

			array('task_id, client_search, task, start_date, end_date, complete,client_id', 'safe', 'on'=>'search'),

		);


	}


    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(

            'client' => array(self::BELONGS_TO, 'Client', 'client_id'),

        );

    }


    public function search()

    {

        // Warning: Please modify the following code to remove attributes that

        // should not be searched.


        $criteria=new CDbCriteria;

        $criteria->with = array('client');

        $criteria->compare('task_id',$this->task_id);

        $criteria->compare('client_id',$this->client_id);

        $criteria->compare('name',$this->client->name);

        $criteria->compare('task',$this->task,true);

        $criteria->compare('start_date',$this->start_date,true);

        $criteria->compare('end_date',$this->end_date,true);

        $criteria->compare('complete',$this->complete);


        return new CActiveDataProvider($this, array(

            'criteria'=>$criteria,

        ));

    }



Не совсем понял при чем тут аякс.

Говорите что проходит $_REQUEST[‘Tasks’][‘client_id’] так может у вас в контроллере данные беруться из $_GET, а приходят в POST?

мой контроллер




	public function actionIndex()

	{

        $model=new Tasks;

		$this->render('index',array(

            'model'=>$model

        ));

	}



Я все понял, я тупица :( теперь все работает:




public function actionIndex()

	{

        $model=new Tasks;

        if(isset($_REQUEST['Tasks']))

            $model->attributes=$_GET['Tasks'];

		$this->render('index',array(

            'model'=>$model

        ));

}