Задать вопрос
@GaserV

Как в Laravel вернуть юзера, который отправил сообщение?

Привет всем! Такой ситуцаия. У меня есть модель Dialog. У него есть messages(), модель Message, у которой в свою очередь есть user(), модель User, которая возвращает юезра, который отправил сообщение. У меня получилось пока вернуть только диалог вместе с сообщениями.

Вопрос: Как мне вернуть в json диалог, его сообщения и каждого пользователя, который отправил сообщение.
$dialog = Dialog::with('messages')->where('id', $id)->get();

        return response()->json([
          'success' => true,
          'dialog' => $dialog
        ]);
  • Вопрос задан
  • 442 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
$dialog = Dialog::with(['messages', 'messages.user'])->where('id', $id)->get();
Ответ написан
Комментировать
@GaserV Автор вопроса
Попробовал так, возвращает. Но валидно ли так делать или может есть другой способ?
public function show($id)
    {
        $dialog = Dialog::where('id', $id)->with('messages')->get();

        foreach ($dialog[0]->messages as $key => $message) {
          $message['user'] = $message->user;
        }

        return response()->json([
          'success' => true,
          'dialog' => $dialog
        ]);
    }
Ответ написан
@iaskivsky
Request
Stream::with('user')->find($request->input('id'));

In model
public function user() {
    return $this->belongsTo(User::class);
  }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы