这对我来说是一个非常奇怪的情况。我有一个CSqldataprovider来处理我的分页。
根据文件和示例,它几乎是正确的。它根据totalitemcount和pagesize计算正确的页数。它显示第一页完全正常,但当我点击下一页链接时,它不会显示任何记录。当我在$ this-> dataProvider-> getData()上执行var_dump时,它会在除第一页之外的每个其他页面上显示一个空数组...
我的分页代码如下:
$result = Yii::app()->db->createCommand($sqlData)->queryAll();
$pages = new YMPagination(count($result));
$pages->pageSize = Yii::app()->params['itemsPerPage'];
$this->dataProvider = new CSqlDataProvider($sqlData, array(
'totalItemCount'=>count($result),
'sort'=>array(
'attributes'=>array(
'recept_id',
),
),
'pagination'=>$pages,
));
$result = $this->dataProvider->getData();
如果有人知道我做错了什么......请告诉我:)
亲切的问候,
皮姆
答案 0 :(得分:0)
首先,两者
$result = Yii::app()->db->createCommand($sqlData)->queryAll();
和
$result = $this->dataProvider->getData();
正在做同样的事情,删除其中一个
第二,如果你想要项目的数量,只需写一个计数查询:
$count = Yii::app()->db->createCommand('select count(*) from myTable')->queryScalar();
而不是
count($result)
最后确保你总是默认使用这些选项,我的意思是不要让if语句使代码不能到达数据提供者代码块