【发布时间】:2018-12-11 09:26:00
【问题描述】:
我有一个名为 chat 的表,它与用户和消息连接(消息与用户连接),查询工作正常,只是我尝试使用 created_at(desc)添加 orderby,但它必须来自表消息。帮帮我。提前致谢。以下是我的查询,
return new GroupDirectChat(
Chat::with(['messages.users', 'users' => function ($query) {
$query->where('id', '!=', Auth::id());
}])
->where('direct_chat', 1)
->whereHas('users', function ($query) {
$query->where('id', '=', Auth::id());
})
->get()
);
【问题讨论】:
-
你想通过
messages.created_at订购chats吗? -
我猜你需要加入才能使用相关表的属性对结果进行排序
-
@JonasStaudenmeir 是的
-
一个
chat可以有多个messages。你想用哪一个来订购?最新的? -
@JonasStaudenmeir 是的,聊天可以有很多消息,但我只想显示最新消息,目前 m 使用消息表中的 take(1),但不是最新消息。
标签: eloquent eager-loading laravel-5.6