我正在尝试学习使用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);
}
答案 0 :(得分:3)
您可以使用预先加载:
Post::with('user')->FindOrFail($id);