У меня есть messages
таблица со структурой типа: id
, to_id
, from_id
... Мне нужно написать Eloquent запрос, который дает мне диалоги для конкретного пользователя в результате.Каждое диалоговое окно должно иметь одно последнее сообщение (независимо от того, пришло оно или отправлено) и все упорядочено ctreated_at desc.
Например, получение всего диалога по идентификатору компаньона:
$messages = Message::with(array_keys($fields->getRelations()))
->select($select)
->whereRaw('from_id = ? and to_id = ? ', [auth()->id(), $args['user_id']])
->orWhereRaw('from_id = ? and to_id = ? ', [$args['user_id'], auth()->id()])
->orderByDesc('created_at');
Но до этого яМне нужен список доступных диалогов для получения.
Попытка $dialogUsers = Message::where('to_id', auth()->id())
->orWhere('from_id', auth()->id())
->select(['from_id', 'to_id'])
->distinct();
, но мне тоже нужно получать сообщения и в порядке убывания