You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel 8博客应用中实现仅含上下页的文章分页器?

实现Laravel 8极简分页(仅上下页)的可行方案

方案一:手动构建分页链接(快速实现)

直接在模板中利用Laravel分页实例的内置方法,替换默认分页代码,完全匹配你要的HTML结构:

<!-- Pager -->
@if($articles->hasPages())
    <div class="clearfix">
        <ul class="pagination">
            <!-- 旧文章(下一页):Laravel分页页码越大,内容越旧 -->
            @if($articles->hasNextPage())
                <li class="prev">
                    <a class="btn btn-primary" href="{{ $articles->withQueryString()->nextPageUrl() }}">Older Posts &rarr;</a>
                </li>
            @endif

            <!-- 新文章(上一页):页码越小,内容越新 -->
            @if($articles->hasPreviousPage())
                <li class="next">
                    <a class="btn btn-primary" href="{{ $articles->withQueryString()->previousPageUrl() }}">&larr; Newer Posts</a>
                </li>
            @endif
        </ul>
    </div>
@endif
  • 核心方法说明:
    • hasNextPage():判断是否存在下一页(旧文章页)
    • nextPageUrl():生成下一页的URL
    • hasPreviousPage():判断是否存在上一页(新文章页)
    • previousPageUrl():生成上一页的URL
    • withQueryString():保留当前页面的查询参数(比如搜索关键词),不需要可以去掉

方案二:自定义分页视图(适合多处复用)

如果多个页面都需要这种极简分页,可以自定义Laravel的分页视图,实现复用:

  1. 创建自定义视图文件
    在resources/views/vendor/pagination目录下新建simple-pager.blade.php,将上面的分页代码粘贴进去。

  2. 调用自定义视图
    在模板中调用分页时,指定使用这个自定义视图:

@if($articles->hasPages())
    {!! $articles->withQueryString()->links('vendor.pagination.simple-pager') !!}
@endif
  1. (可选)全局设置默认视图
    如果想让所有分页默认使用这个视图,在app/Providers/AppServiceProvider.php的boot()方法中添加:
use Illuminate\Pagination\Paginator;

public function boot()
{
    // 设置默认分页视图
    Paginator::defaultView('vendor.pagination.simple-pager');
}

之后直接调用$articles->links()就会自动使用你的极简分页视图。

内容的提问来源于stack exchange,提问作者Razvan Zamfir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 16:36:06