我正在尝试使用 Vue 前端和 Laravel 后端创建帖子系统。
我有表格“ 发布” ' postLike '-包含喜欢该postid帖子的用户ID
关系
发布喜欢的帖子
在发布模型
中public function post_likes()
{
return $this->hasMany('App\PostLike', 'post_id');
}
发布喜欢和喜欢的用户
类似帖子的模型
public function user()
{
return $this->belongsTo('App\User', 'user_id');
}
控制器
public function show($id){
$post = Post::with('post_likes')->find($id);
return $post;
}
HTML
Vue模板
<template>
<h3>{{post.title}}</h3>
<p v-for = likes in post.post_likes>{{likes.user_id}}</p> // instead i want to show user name
</template>
我在Vue中有一个对象可以访问该帖子。使用 with(postLikes),我访问了喜欢该帖子的用户的用户ID。我可以通过某种方式从该post对象访问postLike和user表之间的用户关系。这样,我也可以访问用户名
答案 0 :(得分:0)
您可以像eager loading那样加载帖子的用户:
嵌套的渴望加载
要急于加载嵌套关系,可以使用“点”语法。例如,让我们急切地在一项雄辩的陈述中加载本书的所有作者和作者的所有个人联系人:
$books = App\Book::with('author.contacts')->get();
您的示例如下所示:
$posts = Post::with(['post_likes.user'])->get();