为了账号安全,请及时绑定邮箱和手机立即绑定

获取也使用 Laravel QueryBuilder 排序的分页结果

获取也使用 Laravel QueryBuilder 排序的分页结果

PHP
茅侃侃 2022-07-09 18:15:34
我想检索按 created_at 日期排序的帖子,但我也想对结果进行分页。到目前为止,我已经尝试过以下方法:$posts = Post::orderBy('created_at', 'desc')->get();$posts = Post::paginate(10);以上仅返回 10 个结果,并且不按 created_at 日期排序。我想检索按 created_at 日期排序的 10 个帖子。任何帮助表示赞赏。
查看完整描述

4 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

返回的帖子被覆盖的原因是您正在重新分配$posts变量。请查看以下内容以纠正问题。

Laravel QueryBuilder 允许您将多个过滤器一个接一个地串起来。

在这种情况下,您将按 created_at 日期对帖子进行排序,然后通过分页过滤器检索结果。分页过滤器将替换->get().

$posts = Post::orderBy('created_at', 'desc')->paginate(10);


查看完整回答
反对 回复 2022-07-09
?
达令说

TA贡献1821条经验 获得超6个赞

你可以这样尝试

$posts = Post::orderBy('created_at', 'desc')->paginate(10);


查看完整回答
反对 回复 2022-07-09
?
慕的地10843

TA贡献1785条经验 获得超8个赞

我不确定“如果同时编写两个代码,它会被覆盖”是什么意思,但以下应该可以工作:

$posts = Post::orderBy('created_at', 'desc')->paginate(10);


查看完整回答
反对 回复 2022-07-09
?
jeck猫

TA贡献1909条经验 获得超7个赞

您可以简单地使用paginate()而不是get(). 两者都从数据库中获取数据,而只有一个区别是,分页根据给定的参数设置限制,并根据需要设置限制和偏移量。

分页雄辩的结果

$posts = Post::orderBy('created_at', 'desc')->paginate(10);

打印分页链接,例如:

{{ $$posts->links() }}


查看完整回答
反对 回复 2022-07-09
  • 4 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信