Показать из базы данных, если 2 столбца совпадают - PullRequest
0 голосов
/ 22 мая 2018

Я новичок в Laravel и в настоящее время работаю над очень простой системой личных сообщений.

В настоящее время я пытаюсь отобразить страницу, на которой отображаются сообщения между двумя пользователями (отправленные и полученные), однако я могу отображать только те сообщения, которые отправил пользователь.Вот моя функция viewMessage в моем файле MessageController.

MessageController.php

public function viewMessage($recipient_id){

    $user = auth()->user()->id;

    $messages = Message::where('sender_id', $user)->where('recipient_id', $recipient_id)->get();

    return view ('pages.messages.view', compact('user', 'messages'));
}

Блейд-вид

<ul>

    @foreach ($messages as $message)

        <li>{{$message->body}}</li>

    @endforeach

</ul>

Как вы можете видеть из переменной $ messages, у меня есть построитель запросов, который должен сопоставлять идентификатор отправителя с идентификатором текущего вошедшего в систему пользователя.Он также должен сопоставлять идентификатор получателя с идентификатором пользователя из параметра, однако в настоящее время это не работает.

Я использовал dd(), и оба идентификатора отправителя и идентификатор получателя проходят правильно, поэтому я не понимаю, почему это не работает.Я предполагаю, что я, вероятно, использую конструктор запросов неправильно?

Спасибо

1 Ответ

0 голосов
/ 22 мая 2018

Вы запрашиваете только те сообщения, которые отправил пользователь.Вам также необходимо получать сообщения, полученные пользователем.

$user = auth()->user()->id;

$messages = Message::where('sender_id', $user)->where('recipient_id', $recipient_id)->get();

$receivedMessages= Message::where('sender_id', recipient_id)->where('recipient_id', $user)->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...