分页

目录

基础介绍

Laravel的分页旨在减少实现分页的复杂性.

使用查询生成器

让我们通过一个复杂的例子来实现分页, 基于Laravel的流畅的查询生成器:

从查询中拉取分页数据:

$orders = DB::table('orders')->paginate($per_page);

在视图中展示这些数据:

<?php foreach ($orders->results as $order): ?>
    <?php echo $order->id; ?>
<?php endforeach; ?>

生成分页链接:

<?php echo $orders->links(); ?>

链接方法将创建一个智能的, 滑动的网页链接列表看起来像这样:

Previous 1 2 ... 24 25 26 27 28 29 30 ... 78 79 Next

分页功能会自动判断你在哪个页面并更新相应的结果和链接.

同样也可以生成"上一页"和"下一页"的链接:

生成"上一页"和"下一页"的链接:

<?php echo $orders->previous().' '.$orders->next(); ?>

更多相关:

追加条件到分页链接

你也许想添加更多的项目到分页链接的查询字符串之上, 例如排序字段等:

添加更多的查询字串到分页链接:

<?php echo $orders->appends(array('sort' => 'votes'))->links();

他将生成一个像这样的URL链接:

http://example.com/something?page=2&sort=votes

手动创建分页

有时候你也许会想在不用查询生成器的前提下手动创建链接, 可以这样做:

创建一个手动分页实例:

$orders = Paginator::make($orders, $total, $per_page);

分页样式

分页连接的样式可以通过CSS的方式指定. 这是一个分页方法生成的HTML代码示例:

<div class="pagination">
    <a href="foo" class="previous_page">Previous</a>

    <a href="foo">1</a>
    <a href="foo">2</a>

    <span class="dots">...</span>

    <a href="foo">11</a>
    <a href="foo">12</a>

    <span class="current">13</span>

    <a href="foo">14</a>
    <a href="foo">15</a>

    <span class="dots">...</span>

    <a href="foo">25</a>
    <a href="foo">26</a>

    <a href="foo" class="next_page">Next</a>
</div>

当你在第一页时, "Previous"链接会不可用. 同样的, 当你在最后一页时, "Next"链接会不可用. 生成的Html会像这样:

<span class="disabled prev_page">Previous</span>