2

ドロップダウン フィルターを作成しました。これは表示ですが、正しく機能しません。search() メソッドのトラブルを理解しているので

見る:

   $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'
         )
    ));

私はテーブルを持っている必要があり、それらの関係はモデルの下に示されています:

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,
    ));
}
4

3 に答える 3

1

私は自分の間違いを理解しています。私のコントローラーは次のようになります。

public function actionIndex()
{
    $model=new Tasks;
    if(isset($_REQUEST['Tasks']))
        $model->attributes=$_GET['Tasks'];
    $this->render('index',array(
        'model'=>$model
    ));
}

コントローラーからモデルへのパスパラメーターを忘れます。Thx all!

于 2012-10-09T08:43:49.350 に答える
0

方法を確認してくださいrulesclient_idに参加する必要がありsafeますsearch

public function rules()
{
    return array(
        array('client_id', 'safe', 'on'=>'search'),
    );
}
于 2012-10-07T21:01:20.913 に答える
0

この wikiを確認してください。必要なものが詳細に説明されています。

于 2012-10-07T22:55:40.570 に答える