Jensseger Mongodb Laravel - Заказ по атрибуту на вложенном документе - PullRequest
0 голосов
/ 06 мая 2018

Как я могу заказать по атрибутам в поддокументе (лениво загружен из отношения ownTo)?

У меня есть:

Message::with(['conversation'])
->where(.....)
->get()

Возвращает:

[
{
       "_id": "5aee075893782d1b1f460b13",
        ......
        "updated_at": "2018-05-05 19:34:48",
        "created_at": "2018-05-05 19:34:48",
  "conversation": {
            "_id": "5aee075793782d1b1f460b12",
            "updated_at": "2018-05-06 12:21:23",
            "created_at": "2018-05-05 19:34:47",
            "messageCount": 5
        }
}
]

Теперь мне нужно упорядочить (сообщения) по updated_at в разговоре. Я попытался -> orderBy ('разговор.updated_at', 'desc'), но безуспешно. Я предполагаю, что проблема в том, что объект беседы недоступен для заказа из-за отложенной загрузки ...

1 Ответ

0 голосов
/ 06 мая 2018

Добавьте это отношение к Message::class

public function conversationLatestFirst(): HasMany
{
    return $this->hasMany(Conversation::class)->orderByDesc('created_at');
}

Тогда вы сможете запросить по

Message::with(['conversationLatestFirst'])
->where(.....)
->get()
...