На данный момент все сообщения хранятся в одной таблице. Таблица содержит «sender_id» и «recipient_id», а также содержимое сообщения.
Чтобы получить список сообщений для отображения во входящих, я сейчас делаю это в контроллере:
Код: Выделить всё
//Authenticate the user
$user = auth()->user()->id;
$messagesSent = Message::where('sender_id', $user)->get();
$messagesReceived = Message::where('recipient_id', $user)->get();
$messageThreads = $messagesReceived->merge($messagesSent);
Код: Выделить всё
[list]
@foreach ($messageThreads as $message)
@if($message->user->id != $user)
[*][url=/messages/view/{{$message-]user->id}}">{{$message->user->displayName}}[/url]
@else
[*][url=/messages/view/{{$message-]recipient->id}}">{{$message->recipient->displayName}}[/url]
@endif
@endforeach
[/list]
Пример того, как оно выводится в данный момент
- Тема пользователя 1
- Тема пользователя 1
- Тема пользователя 1
- Тема пользователя 2
- Тема пользователя 2
- Тема пользователя 3
- Пользователь 3 Тема
[*]Тема пользователя 1
[*]Тема пользователя 2
[*]Тема пользователя 3
Я хочу быть уверен, что имя и ссылка на тему будут указаны только один раз.
Я пробовал использовать Different() и unique(), однако, поскольку sender_id и получатель_id являются отдельными столбцами, я все равно получаю повторяющиеся результаты.
Как бы я смог это преодолеть?
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/505 ... -2-columns