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

Laravel获取论坛分类下最近更新的3条主题帖问题求助

解决Laravel关联查询取分类下最新3条帖子的问题

你当前的代码里,take(3)默认按帖子主键ID正序(从小到大)取前3条,所以拿到的是ID≤3的旧数据。要获取最新的3条,需要先按更新时间(或创建时间)倒序排序,再取前3条,同时要移除闭包里多余的->get()(with关联查询不需要手动调用get())。

修改后的代码如下:

public function index()
{
    $forums = Category::with(['posts' => function ($q) {
        // 按updated_at倒序取最新3条;若需按创建时间排序,替换为created_at即可
        return $q->orderBy('updated_at', 'desc')->take(3);
    }])->get();
    dd($forums);
}

关键说明:

  • orderBy('updated_at', 'desc'):让帖子按更新时间从新到旧排序,确保取到的是最新内容;如果你的表没有updated_at字段,换成created_at也适用。
  • 移除闭包里的->get():with方法会自动处理关联查询的执行和结果注入,手动调用get()会导致逻辑错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:25:24