【问题标题】:Take last 3 records from child. Php/Laravel从孩子那里获取最后 3 条记录。 PHP/Laravel
【发布时间】:2023-01-26 16:15:56
【问题描述】:

请帮帮我。

我正在尝试编写一个函数,在其中获取论坛的所有类别以及给定类别中的 3 个最近更新的主题。

但是根据结果,take(3)按id过滤(其中id不大于3),我需要获取最后3条记录。

public function index()
{
    $forums = Category::with(['posts' => function ($q){
    return $q->take(3)->get();
}])->get();
dd($forums);
}

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

    你应该按 update_at 降序排列你的完整查询,只有在你可以使用前 3 个之后。

    $q->orderBy('update_at', 'desc')->take(3)->get(); 
    

    您的类别表似乎与帖子不同,因此在创建或更新帖子时,您还应该将其类别的 update_at 设置为现在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多