С нашей моделью User мы стремимся загружать разговоры и сообщения этих разговоров.Из каждого разговора мы хотели бы вести последние 25 сообщений.Поэтому мы написали следующий запрос.
User::where('status', 3)->with(['conversations.messages' => function ($q) {
$q->take(25)->orderBy('created_at', 'DESC');
}])->get();
Однако эта функция возвращает всего 25 сообщений (т.е. не за разговор).Даже если у вас 1000 пользователей, он загрузит последние 25 сообщений в таблицу сообщений, но не последние 25 сообщений за разговор пользователя.
Есть ли способ решить эту проблему в методологии Laravel Eloquent?