【发布时间】:2019-05-19 03:23:59
【问题描述】:
使用我们的用户模型,我们渴望加载对话和这些对话的消息。在每个对话中,我们希望引导最后 25 条消息。所以我们编写了以下查询。
User::where('status', 3)->with(['conversations.messages' => function ($q) {
$q->take(25)->orderBy('created_at', 'DESC');
}])->get();
但是,此函数总共只返回 25 条消息(因此不是每个对话)。即使您有 1000 个用户,它也会加载消息表中的最后 25 条消息,但不会加载用户每次对话的最后 25 条消息。
有没有办法在 Laravel Eloquent 方法中解决这个问题?
【问题讨论】:
-
这能回答你的问题吗? Laravel eager load function limit