如何在CGridView中显示findall()的结果?

时间:2014-04-07 07:48:59

标签: yii

我想通过带条件

的findall()在CGridView中显示数据
  public function actiondatabase($id){

    $model=Lecture::model()->findAll('subject_id=2');
    if(isset($_GET['Lecture']))
        $model->attributes=$_GET['Lecture'];

    $this->render('database',array(
        'model'=>$model,'dep'=>$id
    ));

在视图database.php

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'lecture-grid',
'dataProvider'=>$model->search(),
 'filter'=>$model,
'columns'=>array(
  'id',
'name'
));

![这是我的代码的结果,现在应该怎么做] [帮助]

1 个答案:

答案 0 :(得分:1)

CGridView期望一个dataProvider,在你的情况下是一个CActiveDataProvider,因为你想要从数据库中检索数据。您可以为CActiveDataProvider添加与findAll()相同的属性(例如'条件',' order',' with'等等),例如:

<强>型号:

public function myDataProvider()
{

    $dataProvider=new CActiveDataProvider('Post', array(
        'criteria'=>array(
            'condition'=>'subject_id=2',
        ),
        'pagination'=>array(
            'pageSize'=>20,
        ),
    ));

    return $dataProvider;

}

查看:

$this->widget('zii.widgets.grid.CGridView', array(
   'id'=>'lecture-grid',
   'dataProvider'=>$model->myDataProvider(),
    'filter'=>$model,
    'columns'=>array(
         'id',
         'name'
));