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