首页 > 解决方案 > 如何在 laravel 中获取最新的 n 条相关模型记录

问题描述

我有两个表 - 帖子和评论。它们之间的关系是一对多的。一个帖子有很多评论。

我正在尝试获取所有帖子及其最新 2 条评论的列表

我试过这个:

$posts = Post::with(['comments'=>function($query){
    $query->latest()->take(2)->get();
}])->get();

但它似乎只适用于第一篇文章;

标签: laraveleloquentlaravel-8

解决方案


Laravel 不提供开箱即用的功能,如此处所述https://github.com/laravel/framework/issues/18014并在此处记录https://laravel.com/docs/8.x/eloquent-relationships# constraining-eager-loads,但是有一个包可以用来实现这一点。

看看https://github.com/staudenmeir/eloquent-eager-limit


推荐阅读