Laravel Eloquent: получить диалог на основе сообщений - PullRequest
1 голос
/ 06 марта 2019

У меня есть 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();, но мне тоже нужно получать сообщения и в порядке убывания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...