Yii Framework Forum: Cgridview Не Работает Dropdown-Фильтр - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

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

#1 User is offline   terkin 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 8
  • Joined: 07-October 12

Posted 08 October 2012 - 10:13 AM

Сделал 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,
        ));
    }

Attached File(s)

  • Attached File  22.jpg (15.96K)
    Number of downloads: 4

0

#2 User is offline   Charger 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 317
  • Joined: 03-September 11

Posted 08 October 2012 - 10:55 AM

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

#3 User is offline   terkin 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 8
  • Joined: 07-October 12

Posted 09 October 2012 - 03:28 AM

View PostCharger, on 08 October 2012 - 10:55 AM, said:

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

мой контроллер
	public function actionIndex()
	{
        $model=new Tasks;
		$this->render('index',array(
            'model'=>$model
        ));
	}

0

#4 User is offline   terkin 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 8
  • Joined: 07-October 12

Posted 09 October 2012 - 03:38 AM

Я все понял, я тупица :( теперь все работает:
public function actionIndex()
	{
        $model=new Tasks;
        if(isset($_REQUEST['Tasks']))
            $model->attributes=$_GET['Tasks'];
		$this->render('index',array(
            'model'=>$model
        ));
}

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users