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

Laravel 10:关联模型分页后如何在视图中正确使用links方法?

问题分析与解决

错误原因

你踩了两个坑:

  1. 错误地在Book模型实例上调用links()方法,而links()是Laravel分页实例(LengthAwarePaginator)的专属方法,Book模型本身没有这个方法。
  2. 在预加载with()的关联闭包中直接用paginate(),虽然能让$book->reviews成为分页实例,但这种写法不符合Laravel预加载的常规逻辑,容易混淆调用对象。

正确解决方案

方案一:单独查询评论分页(推荐)

把Book查询和评论分页查询分开,逻辑更清晰:

// 控制器代码
$book = Book::findOrFail($id);
$reviews = $book->reviews()->latest()->paginate(5);

视图里调用分页导航:

{{ $reviews->links() }}

方案二:修正视图调用(仅适用于单Book场景)

如果要保留原控制器代码,必须针对关联的分页实例调用links():

{{ $book->reviews->links() }}

这种方式只适合单个Book的场景,批量查询Book时会引发逻辑混乱,所以更推荐方案一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:20:14