Laravel API - Vue.js用户返回帖子

时间:2016-09-16 10:44:04

标签: laravel vue.js

我正在尝试学习使用Laravel进行API构建的Vue.js。这个想法很简单,用户可以发帖子,帖子可以有评论。我可以在laravel中获得关系,但我无法弄清楚如何使用Vue.js返回帖子的作者姓名或评论。

使用刀片模板引擎时,我在foreach循环中使用类似的东西来返回作者名称:

{{ $post->user->name }}

当我通过API返回帖子时,除了用户ID之外,我得不到任何用户信息。如何获取属于此帖子的用户信息?

{
  "message": "Success",
  "data": [
    {
      "id": 1,
      "body": "test body 1",
      "user_id": "1",
      "created_at": "2016-09-16 10:22:57",
      "updated_at": "2016-09-16 10:22:57"
    }
  ]
}

<script>
  export default {
        /*
         * The component's data.
         */
         data() {
            return {

                posts: [],

            };
        },

        /**
         * Prepare the component.
         */
         ready() {

            this.getPosts();

        },

        methods: {

            /**
             * Get Posts.
             */
            getPosts: function() {
                this.$http.get('/api/wall/posts')
                    .then(response => {

                        this.posts = response.data.posts;

                    });
            }

        }
    }
</script>

public function getPosts($id = null)
    {
        if (!$id){
            $data = Post::all();
            $message = 'Success';
            $code = 200;
        } else {
            $data = Post::FindOrFail($id);
            $message = 'Success';
            $code = 200;
        }
        return Response::json(['message' => $message, 'data' => $data], $code);
    }

1 个答案:

答案 0 :(得分:3)

您可以使用预先加载:

Post::with('user')->FindOrFail($id);