Yii 框架未定义的偏移量:0
Yii Framework Undefined Offset: 0
我正在尝试将 CGridView 与自定义查询一起使用,并尝试构建一个非常简单的没有排序和其他内容的视图。
我的视图包含简单的 CGridView
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
));
我的控制器将 $dataProvider 传递给视图
$count=Yii::app()->db->createCommand('SELECT COUNT(*) FROM ( ' . $query . ' ) as count')->queryScalar();
$dataProvider=new CSqlDataProvider($query, array(
'keyField' => false,
'totalItemCount'=>$count,
'pagination'=>array(
'pageSize'=>10,
),
));
我没有 keyField,因此我将其设置为 false。此外,我尝试使用 var_dump 打印数据,数据存在于变量中,但我仍然得到这个未定义的偏移量错误。
除了 false
,您还必须提供 keyfield
,更改查询的关键字段主键 Table
排序需要设置映射
/*
Query results
array(
array(
'id' => 1,
'username' => 'username',
'email' => 'email'
),
...
)
*/
return new CSqlDataProvider($query, array(
'keyField' => 'id', //required, any field from query results
'totalItemCount'=> $count,
'pagination' => array(
'pageSize' => 10
),
'sort' => array(
'defaultOrder' => array(
'username' => CSort::SORT_DESC,
),
'attributes' => array(
'username',
'email',
),
),
));
//grid.columns
array(
array(
'name' => 'id' //WO sort
),
array(
'name' => 'username', //with sort (isset in dp.sort.attributes)
),
)
我正在尝试将 CGridView 与自定义查询一起使用,并尝试构建一个非常简单的没有排序和其他内容的视图。
我的视图包含简单的 CGridView
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
));
我的控制器将 $dataProvider 传递给视图
$count=Yii::app()->db->createCommand('SELECT COUNT(*) FROM ( ' . $query . ' ) as count')->queryScalar();
$dataProvider=new CSqlDataProvider($query, array(
'keyField' => false,
'totalItemCount'=>$count,
'pagination'=>array(
'pageSize'=>10,
),
));
我没有 keyField,因此我将其设置为 false。此外,我尝试使用 var_dump 打印数据,数据存在于变量中,但我仍然得到这个未定义的偏移量错误。
除了 false
,您还必须提供 keyfield
,更改查询的关键字段主键 Table
排序需要设置映射
/*
Query results
array(
array(
'id' => 1,
'username' => 'username',
'email' => 'email'
),
...
)
*/
return new CSqlDataProvider($query, array(
'keyField' => 'id', //required, any field from query results
'totalItemCount'=> $count,
'pagination' => array(
'pageSize' => 10
),
'sort' => array(
'defaultOrder' => array(
'username' => CSort::SORT_DESC,
),
'attributes' => array(
'username',
'email',
),
),
));
//grid.columns
array(
array(
'name' => 'id' //WO sort
),
array(
'name' => 'username', //with sort (isset in dp.sort.attributes)
),
)