我想通过带条件
的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'
));
![这是我的代码的结果,现在应该怎么做] [帮助]
答案 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'
));