【问题标题】:Pagination in Yii without database没有数据库的 Yii 中的分页
【发布时间】:2018-01-16 09:53:21
【问题描述】:

如何将分页添加到没有从 DB 获得的内容?例如:我有 20 次输出一些行的 cicle,我如何对其进行分页。我尝试创建分页器,它会正确显示页面数,但在每个页面中我都可以看到所有内容。

循环代码:

for ($i = 0; $i < 5; $i++) {
    $day = mktime(0, 0, 0, date('m'), date('d') - $i);
    $elems = ContentItem::dayNews($day);
    $test[] = $elems;
    if (count($elems)) {
        $date = Y::date_print($day, 'd-m-Y');
        $arr = explode('-', $date);
        ?>
        <div class="news_dhead">
            <?= Y::isToday($day) ? 'Today, ' : '' ?>
            <?= Y::isYesterday($day) ? 'Yesterday, ' : '' ?>
            <? echo $arr[0] . ' ' . Y::months($arr[1]) . ' ' . $arr[2] ?>
        </div>
        <div class="news_dcoll">
        <?
        foreach ($elems as $key => $elem) {
            ?>
            <div class="ib news_delem">
                <? //echo $key;?>
                <div class="news_ddate"><?= Y::date_print($elem->cdate, 'H.i') ?></div>
                <a href="<?= $elem->urlNews ?>" class="tdn"><?= $elem->title ?></a>
            </div>
        <?
        }
        ?></div><?
    }
}

所以你可以看到,每一行都是从 db 获取的数据列表。 PS。循环写另一个人。

【问题讨论】:

  • 您可以将自定义数据添加到数据提供者并让CListView/CGridView 为您分页吗?这里有一个类似的答案:How to create my own DataProvider in Yii using CDataProvider?
  • @Stu,但我不想使用网格或列表视图,我将所有项目添加到数组并尝试在数组上调用寻呼机但仍然得到相同的结果
  • CListView 就是这样做的,循环遍历数组并一次输出每一行,并自动为您分页,我相信这是最简单的方法。

标签: php yii pagination


【解决方案1】:

Widgets 是 Yii 使用一个数据提供者来显示数据。有不同的数据提供者:

  1. CActiveDataProvider(CActiveDataProvider实现了一个基于ActiveRecord的数据提供者。)
  2. CArrayDataProvider(CArrayDataProvider 实现了一个基于原始数据数组的数据提供者。)
  3. CDataProvider(CDataProvider 是实现 IDataProvider 接口的基类。)

如果您没有任何数据库数据,您可以使用CDataProviderCArrayDataProvider 并将其传递给您的小部件(或在任何地方使用)

【讨论】:

  • 我不需要使用这个提供程序,因为我知道他们用显示数据检索寻呼机,而我只需要寻呼机。我在我的问题中添加了代表数据的循环...
  • @excluded_once 嗯,yiiframework.com/doc/api/1.1/CLinkPager 怎么样?
  • 如果我仍然需要使用带有 Criteria 的 Pagination 类有什么区别?
  • 不,你不能使用条件,看看这个例子:yiiframework.com/forum/index.php/topic/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 2018-12-09
相关资源
最近更新 更多