В настоящее время я создаю базовую папку входящих сообщений для частной системы обмена сообщениями, которая отображает только тех пользователей, с которыми вошел в систему пользователь, с которыми контактировал, если существуют сообщения между пользователем и получателем.(По аналогии с тем, как работает ваш стандартный мессенджер)
Способ, которым я получаю этот список, состоит в том, чтобы проверить таблицу сообщений, чтобы увидеть, существуют ли какие-либо сообщения между двумя пользователями.Если это произойдет, тогда перечислите это в папке «Входящие», но поскольку между пользователем будет много сообщений, я использую коллекцию Laravel и уникальную функцию, чтобы отображать получателя только один раз.Затем пользователь может щелкнуть этого получателя, чтобы просмотреть ветку сообщений.
Проблема, с которой я сталкиваюсь, заключается в возможности отсортировать этот список по последнему сообщению (например, отсортировать по create_at)
Как я могу заказать это в порядке последней записи, чтобысамые последние сообщения отображаются вверху списка в папке «Входящие».Вот код, который я использовал в своем контроллере, чтобы получить список получателей и попытаться отсортировать по последнему сообщению:
$messages = collect(Message::where('recipient_id', $user)->orderBy('created_at', 'desc')->get());
$messagesUnique = $messages->sortBy('created_at')->unique('sender_id');
$messagesUnique->values()->all();
Спасибо