介绍 入门 应用结构 请求处理 关键概念 配合数据库工作 接收用户数据 显示数据 安全 缓存 RESTfulWeb服务 开发工具 测试 高级专题 小部件 助手类 其他

发布于 2015-08-01 11:33:17 | 384 次阅读 | 评论: 0 | 来源: 网络整理

当一次要在一个页面上显示很多数据时,通过需要将其分为 几部分,每个部分都包含一些数据列表并且一次只显示一部分。这些部分在网页上被称为 分页。

如果你使用 数据提供者数据小部件 中之一, 分页已经自动为你整理。否则,你需要创建 yiidataPagination 对象为其填充数据,例如 yiidataPagination::$totalCount, yiidataPagination::$pageSize 和 yiidataPagination::$page,在 查询中使用它并且填充到 yiiwidgetsLinkPager。

首先在控制器的动作中,我们创建分页对象并且为其填充数据:

function actionIndex()
{
    $query = Article::find()->where(['status' => 1]);
    $countQuery = clone $query;
    $pages = new Pagination(['totalCount' => $countQuery->count()]);
    $models = $query->offset($pages->offset)
        ->limit($pages->limit)
        ->all();

    return $this->render('index', [
         'models' => $models,
         'pages' => $pages,
    ]);
}

其次在视图中我们输出的模板为当前页并通过分页对象链接到该页:

foreach ($models as $model) {
    // 在这里显示 $model
}

// 显示分页
echo LinkPager::widget([
    'pagination' => $pages,
]);
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务