如何使用vuejs在表格中显示用户名?
我的用户和帖子表设置了关系。用户有很多帖子,帖子属于用户。
在我的Posts.vue模板中,我现在可以显示帖子表数据:
<tr v-for="post in posts">
<td>{{ post.id }}</td>
<td>{{ post.title }}</td>
<td>{{ post.body | snippet }}</td>
</tr>
脚本如下所示:
<script>
export default {
data(){
return{
posts: []
}
},
methods: {
showPosts(){
axios.get('/app/posts').then(response => {
this.posts = response.data.posts;
});
}
},
mounted(){
this.showPosts();
}
}
</script>
我的PostController在索引函数
中看起来像这样 public function index()
{
//
$posts = Post::all();
return response()->json([
'posts' => $posts,
], 200);
}
由于我在posts表中有user_id, 如何使用vuejs在表格中显示用户名?
答案 0 :(得分:6)
所以我从Laravel文件中发现,我可以通过&#34;&#34;我的控制器中的功能如下:
$posts = Post::with('user')->get();
它为我提供了该帖子的帖子和用户数据,这使我能够像这样访问:
{{ post.user.name }}
答案 1 :(得分:1)
要访问VUE组件中的laravel关系,Laravel Eager loading效果很好。使用 with()方法。例如,
public function recent_orders() {
$orders = Order::with('service')->where('user_id', Auth::User()->id)->get();
return response()->json($orders);
}
现在可以访问我们可以编写的关系了,
<p>{{ order.service.name }}</p>
答案 2 :(得分:0)
感谢您对此进行记录,对您有帮助。
我正在laravel中进行关系链接,尚未使用api进行准备,但是使用predictpy.heroku.com
方法,在我的vuejs代码中引用关系数据是一件轻而易举的事。
不起作用: Laravel
with()
工作:Laravel
public function index()
{
if (request()->q){
$search = request()->q;
$searches = User::whereHas('doctor')
->where(function ($query) use ($search){
$query->where('name', 'like', "%$search%")
->orWhere('email', 'like', "%$search%");
})->paginate(5);
}
return $searches;
}
用法: VueJs
public function index()
{
if (request()->q){
$search = request()->q;
$searches = User::with('doctor')->whereHas('doctor')
->where(function ($query) use ($search){
$query->where('name', 'like', "%$search%")
->orWhere('email', 'like', "%$search%");
})->paginate(5);
}
return $searches;
}