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

Yii 如何在CGridView中显示findall()的结果?,yii,Yii,我想通过findall()和condition在CGridView中显示数据 public function actiondatabase($id){ $model=Lecture::model()->findAll('subject_id=2'); if(isset($_GET['Lecture'])) $model->attributes=$_GET['Lecture']; $this->render('database',a

我想通过findall()和condition在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
    ));
in-view database.php

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

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

CGridView需要一个数据提供者,在您的例子中是一个cactivedaptrovider,因为您希望从数据库检索数据。您可以为CActiveDataProvider添加与findAll()相同的属性(如“条件”、“顺序”、“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'
));
查看:

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

然后我应该使用$model=new讲座('search');或者$model=讲座::model()->findAll();?不,CActiveDataProvider为您执行“findAll()”。如果您想了解gridview的工作原理,请查看此处: