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

Laravel 5.4分页:如何对按ID倒序的Child模型结果实现分页

解决Laravel中Child模型按ID倒序分页的问题

嘿,我来帮你搞定这个分页的问题!你之前的代码里犯了一个小错误:不能先调用get()再用paginate(),因为get()会直接把所有查询结果转换成Collection集合,而paginate()是查询构造器(QueryBuilder)的方法,需要在查询执行前调用才能生成正确的分页SQL。

正确的控制器代码

修改你的index方法,去掉get(),直接把orderBy和paginate链式调用:

public function index() {
    // 先按id倒序排序,再分页,每页50条
    $children = Child::orderBy('id', 'desc')->paginate(50);
    return view('welcome', compact('children'));
}

这样做的好处是,Laravel会自动生成带LIMIT和OFFSET的SQL语句,只查询当前页需要的50条数据,而不是把所有数据都拉到内存里再分页,性能会好很多,尤其是数据量大的时候。

视图中渲染分页链接

在你的视图循环完数据之后,只需要添加一行代码就能渲染分页导航:

@section('content')
    @foreach($children as $child)
        <!-- 这里放你渲染单个Child数据的代码,比如: -->
        <div class="child-item">
            ID: {{ $child->id }} | 名称: {{ $child->name }}
        </div>
    @endforeach

    <!-- 渲染分页导航 -->
    {{ $children->links() }}
@endsection

$children->links()会自动生成默认的分页HTML,包含上一页、下一页和页码按钮,Laravel默认支持Bootstrap样式,如果你用的是其他UI框架,也可以自定义分页视图。

另外,分页会自动处理URL中的page参数,用户点击分页按钮时,会自动带上对应的页码,你不需要额外处理路由或请求参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:14:36