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

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

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

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

        return response()->json([
          'success' => true,
          'dialog' => $dialog
        ]);
  • Вопрос задан
  • 445 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Loftschool
    Комплексное обучение PHP
    6 недель
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Skillbox
    Профессия PHP-разработчик с нуля до PRO
    7 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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);
  }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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