Laravel Vue - получите красноречивый ответ JSON - PullRequest
3 голосов
/ 06 июля 2019

Я пытаюсь создать базовую систему комментариев Laravel Vue, чтобы выучить оба.

Теперь я пытаюсь отобразить все комментарии к определенной статье.

Мой контроллер возвращает json_response.

public function comments(Post $post)
{
    return response()->json(
        $post->comments
    );
}

Все работает нормально, я получаю следующий json-ответ с методом Axios get.

[
  {
    "id":1,
    "post_id":1,
    "user_id":1,
    "body":"Post Comment 1",
    "created_at":null,
    "updated_at":null,
    "deleted_at":null
  },
  {
    "id":2,
    "post_id":1,
    "user_id":1,
    "body":"Post comment 2",
    "created_at":null,
    "updated_at":null,
    "deleted_at":null
  }
]

Я отображаю все данные с помощью Vue, но я не уверен, как я могу получить красноречивое отношение, которое я имею на моделях Comments и Users.

В Blade я могу отобразить пользователя, если я верну свой ответ в виде данных в View, например:

@foreach($post->comments as $comment)

   {{ $comment->user->username }}

@endforeach

Как я могу передать отношение пользователя с комментариями в моем ответе json, чтобы получить пользователя комментария из значения user_id?

1 Ответ

3 голосов
/ 06 июля 2019

Мне удается решить с помощью Laracasts.

Я должен изменить свой ответ на

public function comments(Post $post)
{
    return response()->json(
        $post->comments->load('user');
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...