【问题标题】:Display data with relationship in Laravel & Vue在 Laravel 和 Vue 中显示具有关系的数据
【发布时间】:2019-05-04 03:07:49
【问题描述】:

我正在尝试在我的 Vue 组件中显示具有关系(使用多对多)的数据。

我将用户存储在来自 REST API 的对象中:

users: {}, 
//...
axios.get("api/user").then(({data}) => (this.users = data));

api/user 返回的 JSON 示例:

{"current_page":1,"data":[{"id":2,"name":"Andrew","description":"Testing","role":[{"id":2,"role_title":"TestTitle","pivot":{"user_id":2,"role_id":2}} 

显示数据时我能做的

<tr v-for="user in users.data" :key="user.id">
<td>{{user.name}}</td> // DOES work, displays 'Andrew'

但是,如果我尝试这样做:

<td>{{user.role.role_title}}</td> //does NOT work, should display 'TestTitle'

什么都不显示,我做错了什么?

【问题讨论】:

    标签: laravel vue.js relational


    【解决方案1】:

    user.role 是一个角色数组。要显示第一个角色(假设总是至少有一个角色),您可以这样做:

    <td>{{ user.role[0].role_title }}</td>
    

    【讨论】:

    • 感谢您的回答。无论如何我可以循环显示给定用户的所有角色吗?我不确定 Vue 中的当前实现是如何做到这一点的。
    • 只需使用v-for,就像对每个用户一样,而是对每个角色使用。
    • 哦,不知道这么简单。谢谢!
    猜你喜欢
    • 2019-05-03
    • 1970-01-01
    • 2019-07-21
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多