0

我正在尝试创建一个 Yii CModel 类,以便可以在过滤、排序的网格中查看数据。

它不应该太复杂,但我一生都无法弄清楚如何做到这一点。我正在寻找如何开始的分步说明集,但我找不到任何东西。:(

我不想使用数据库后端,所以我正在扩展 CModel。

我在下面放了一些代码,但我不确定下一步该做什么。实际数据去哪儿了?它必须进入一个数组或什么的?

任何帮助都会很棒。

我在下面放了一些代码,如果有帮助的话。这是我的模型:

class MyModel extends CModel{
    public $id,
           $attribute1,
           $attribute2,
           $attribute3;

    public function search(){
        $criteria = new CDbCriteria;

        $criteria->compare('id', $this->id);
        $criteria->compare('attribute1', $this->attribute1);
        $criteria->compare('attribute2', $this->attribute2);
        $criteria->compare('attribute3', $this->attribute3);

        return new CActiveDataProvider($this, array(
            'criteria' => $criteria,
        ));
    }

public function attributeNames(){
        return array(
            'id',
            'attribute1',
            'attribute2',
            'attribute3',
        );
    }
}

这是我的控制器:

class MyController extends CController{

    public function actionIndex() {
        $model = new MyModel('search');

        $model->unsetAttributes();

        if (isset($_GET['MyModel'])){
            $model->setAttributes($_GET['MyModel']);
        }

        $this->render('index', array(
            'model' => $model,
        ));
}

这是我的观点:

$this->widget('bootstrap.widgets.TbGridView', array(
    'type'=>'striped bordered condensed',
    'dataProvider'=>$model->search(),
    'filter' => $model(),
    'columns'=>array(
        'id',
        'attribute1',
        'attribute2',
        'attribute3',
    )
));
4

1 回答 1

0

如果您只是将数据用于网格视图,则可以使用CArrayDataProvider

于 2013-07-01T20:12:33.357 回答