Laravel Vue-在json响应上获得口才

时间:2019-07-06 15:21:18

标签: php json laravel vue.js axios

我正在尝试构建一个基本的Laravel Vue评论系统,以便同时学习两者。

现在,我正在尝试显示特定文章中的所有评论。

我的控制器返回json_response。

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

一切正常,我使用Axios get方法得到以下json响应。

[
  {
    "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显示所有数据,但是我不确定如何在CommentsUsers模型上获得雄辩的关系。

在Blade中,如果我将响应作为数据返回到View中,则我可以显示用户,如下所示:

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

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

@endforeach

如何在json响应中传递用户与注释的关系,以从user_id值获取注释的用户?

1 个答案:

答案 0 :(得分:3)

我设法在Laracasts的帮助下解决问题。

我必须将回复更改为

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