отображение сообщений пользователей в Laravel

Я хочу получить список пользователей отправленных сообщений

я использую users_id хранить идентификатор получателя и sender_id чтобы сохранить идентификатор отправителя, я хочу, чтобы отобразить список пользователей сообщения, как в WhatsApp или в FB Messenger

Я пытался использовать

$message    =  Messages::whereRaw("(sender_id, `users_id`, `created_at`) IN (
SELECT   sender_id, `users_id`, MAX(`created_at`)
FROM     messages
WHERE     `users_id`=$userId
or    `sender_id`=$userId
GROUP BY sender_id, `users_id`)")
->skip($start)->take(51)
->orderBy('created_at','desc')
->get();

Это выбирает данные последних двух разговоров между этими пользователями

Есть ли способ получить последние сохраненные данные, отправленные или полученные пользователем?

2

Решение

После нескольких попыток я создал поле для conversationId и сгруппировал сообщения под этим идентификатором так, чтобы есть только один уникальный conversationId между двумя пользователями

$message    =  Messages::whereRaw("(sender_id, `users_id`, `created_at`) IN (
SELECT   sender_id, `users_id`, MAX(`created_at`)
FROM     messages
WHERE     `users_id`=$userId
or    `sender_id`=$userId
GROUP BY conversationId)")
->skip($start)->take(50)
->orderBy('created_at','desc')
->get();

Идентификатор беседы создается, если между двумя пользователями нет существующей беседы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]