如何在拉拉维尔中获取最新n个相关模型记录


How to get latest n number of related model records in laravel

我有两个表 - CategoriesPosts .它们之间的关系是一对多。即 - 一个类别有很多帖子。

我正在尝试获取所有Categories的最新 3 个帖子的列表

我试过这个:-

$with = array('posts' => function($query) {
  $query->take(3);
  $query->orderBy('created_at', 'desc');
  $query->addSelect(array('name', 'excerpt','category_id'));
});
$categories = Category::with($with)->get();

但它似乎仅适用于第一个类别,后续类别为空。

你可以尝试这样的事情:

$categories = Category::all()->each(function($category) {
    $category->posts = $category->posts()
                                ->addSelect(['name', 'excerpt', 'category_id'])
                                ->latest()->take(3)->get();
});