首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii Csqldataprovider仅适用于首页

Yii Csqldataprovider仅适用于首页
EN

Stack Overflow用户
提问于 2014-05-20 22:12:22
回答 1查看 298关注 0票数 0

这对我来说是一个非常奇怪的情况。我有一个CSqldataprovider来处理我的分页。

根据文档和示例,它几乎是正确的。它根据totalitemcount和pagesize计算正确的页数。它可以很好地显示第一页,但当我单击下一页链接时,它不会显示任何记录。当我在$this->dataProvider->getData()上执行var_dump时,除了第一页之外,每隔一页都会显示一个空数组……

我的分页代码如下:

代码语言:javascript
复制
$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();

如果有人知道我做错了什么.请告诉我:)

致以亲切的问候,

Pim

EN

回答 1

Stack Overflow用户

发布于 2014-05-21 12:02:59

首先,两者

代码语言:javascript
复制
$result = Yii::app()->db->createCommand($sqlData)->queryAll();

代码语言:javascript
复制
$result = $this->dataProvider->getData();

都在做同样的事情,移除其中一个

其次,如果您想要项目的计数,只需编写一个计数查询:

代码语言:javascript
复制
$count = Yii::app()->db->createCommand('select count(*) from myTable')->queryScalar();

而不是

代码语言:javascript
复制
count($result)

最后,请确保默认情况下始终使用这些选项,我的意思是不使用if语句,这些语句使代码不会到达数据提供程序代码块

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23762189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档