首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CPagination在YII1.x中构建分页API

如何使用CPagination在YII1.x中构建分页API
EN

Stack Overflow用户
提问于 2015-07-10 10:21:40
回答 1查看 557关注 0票数 1

我是新来的。目前,我正在为一些项目构建API。我设法从数据库中获取所有数据,并将其作为对前端的响应发送。现在有一个改进,我应该限制每页输出的结果。所以分页。我在yii上读了很多关于CPagination的文章,不管我尝试了什么,我都得到了500个内部服务器错误。这是我的密码

代码语言:javascript
复制
    public function actionIndex()
{
    //getting page number from front end
    $request = file_get_contents('php://input');

    if (is_null($request)) {
        $page = 1;
    } else {
        $input = json_decode($request, true);
        $page = $input['page'];
    }

    //Criteria sorting templates by id DESC
    $criteria = new CDbCriteria;
    $criteria->order = 'id DESC';

    //Number of rows returned
    $count = TblTemplate::model()->count($criteria);

    //Templates per page
    $perPage = 2;

    //Calculating the offset
    $offset = ($page > 1) ? ($page * $perPage) - $perPage : 0;

    $pages = new CPagination($count);
    $pages->pageSize = $perPage;
    $pages->offset   = $offset;
    $pages->applyLimit($criteria);

    //fetching all templates    
    $templates = TblTemplate::model()->findAll($criteria);

    $response = [];

    //Fetching all array - filtering through the cluster
    foreach ($templates as $template) {
        $response[] = [
            'id'      => $template->id,
            'name'    => $template->name,
            'email'   => $template->email,
            'content' => $template->content 
        ];
    }

    echo json_encode($response);
}

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-10 11:02:02

改为:-

代码语言:javascript
复制
    $perPage = 2;
    $offset = ($page > 1) ? ($page * $perPage) - $perPage : 0;

    $criteria = new CDbCriteria;
    $criteria->order = 'id DESC';
    $criteria->limit=$perPage;
    $criteria->offset=$offset;

    $templates = Users::model()->findAll($criteria);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31338374

复制
相关文章

相似问题

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