【发布时间】:2020-09-12 17:57:47
【问题描述】:
我有一个关于查询的问题,我如何在 Laravel 中从关系 hasMany 中获取第一个元素,我有一个包含关系 hasMany 消息的聊天表,我尝试使用这个,以及 take() 和 limit(),但是没有成功
$chats = Chat::with(['messages' => function ($query) {
$query->first();
}])->get();
【问题讨论】:
-
你不能反过来做吗,Message::orderBy('id', 'desc')->first()->chat?
-
不,我需要通过他们的第一条消息获取所有聊天记录,通过该查询,我只收到来自 db 和他的关系聊天记录的第一条消息
-
我明白了。您可以创建一个新的关系,如“firstMessage”,并在关系本身中有一个 ->first()