【发布时间】:2020-04-21 06:57:42
【问题描述】:
我想检索按 created_at 日期排序的帖子,但我也想对结果进行分页。到目前为止,我已经尝试了以下方法:
$posts = Post::orderBy('created_at', 'desc')->get();
$posts = Post::paginate(10);
以上仅返回 10 个结果,并且不按 created_at 日期排序。
我想检索按 created_at 日期排序的 10 个帖子。任何帮助表示赞赏。
【问题讨论】:
-
->get()和->paginate()都是执行查询的函数,因此 Post::paginate() 正在运行一个新查询并对所有帖子进行分页。要使用带有任何约束的分页,请像在第一个示例中那样编写查询并将->get()替换为->paginate($perPage) -
@ru501 只需将
get()替换为paginate(10)。paginate()获取所有数据并在调用分页时根据给定/定义放置限制和偏移量。 -
这能回答你的问题吗? Laravel - Paginate and get()
-
是的,不要覆盖你的变量。如果您有两个
$posts = Post::{method}();实例,则第二个将覆盖第一个,除非第二个引用第一个,例如$posts = $posts->{method}();