一步一步如何创建yii CModel

时间:2013-06-30 11:56:09

标签: model yii

我正在尝试创建一个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',
    )
));

1 个答案:

答案 0 :(得分:0)

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