【问题标题】:getting category name from category id in ParkingArea table Laravel vue从 ParkingArea 表 Laravel vue 中的类别 ID 获取类别名称
【发布时间】:2021-10-16 03:03:33
【问题描述】:

嗨,需要帮助的人,我有点困惑,我有一个类别表,我有一个停车区表,我想在列出停车区时显示类别 ID 中的类别名称,

在我的停车区模型中


    public function category(){
        return $this->belongsTo(Category::class);
    }

我也是从我的parkingArea 控制器中获取的,比如

 public function parkingData()
    {
        return ParkingArea::with(['category'])->orderBy('id', 'desc')->get();
    }

在我的 Area.vue 文件中

loadParkingArea(){
                 axios.get("api/parkingArea").then(({ data }) => (this.parkingArea = data));  
                 console.log(this.data)
               
            },

我正在迭代

 <tr v-for="Area in parkingArea.data" :key="Area.id">
                                <td> {{Area.category_id->name}} </td>
                                <td> {{Area.location}}</td>
                                <td>{{Area.capacity}}</td>
                            </tr>

请帮忙(发展)

【问题讨论】:

  • 你不能混合使用 php 和 vue。 Area.category_id.name
  • @Maksim 我刚试了,没用
  • @Maksim 这个&lt;td&gt; {{Area.category_id.name}} &lt;/td&gt; 把所有东西都拿出来了。我的表格数据以及已经显示的所有其他数据

标签: php laravel vue.js


【解决方案1】:

大家好,已经超过 17 天了,我认为这还没有答案,所以我以这种方式解决了它

  1. 建立适当的关系 - 在我的 category.php 中,我使用的是 belongsto 而不是 hasMany
public function parkingArea()
    {
        // return $this->belongsTo(ParkingArea::class);
        return $this->hasMany(\App\ParkingArea::class);
    }

也在 ParkingArea.php 中

public function category(){
        return $this->belongsTo(\App\Category::class);
    }

一旦完成.. 我所要做的就是在我的 vue 文件中,因此我获取了我的数据

 loadParkingArea(){
                 axios.get("api/parkingArea").then(({ data }) => (this.parkingArea = data));  

               
            },

我这样迭代来获取类别的名称

  <tr v-for="Area in parkingArea.data" :key="Area.id">
    <td> {{Area.category.name}} </td>
    <td> {{Area.location}}</td>
    <td>{{Area.capacity}}</td>
  </tr>

谢谢,我希望这对需要它的人有所帮助-Developia

【讨论】:

    【解决方案2】:

    您的 axios 响应将其存储在变量 data 中,因此在您的分配中

    this.parkingArea = data 应该是this.parkingArea = data.data

    或在您的迭代中

    v-for="Area in parkingArea.data.data"
    

    尝试并评论

    【讨论】:

    • 我试过了,这就是我得到的app.js:48270 [Vue warn]: Error in render: "TypeError: Cannot read property 'data' of undefined" found in ---&gt; &lt;Area&gt; at resources/js/components/Admin/Area.vue &lt;Root&gt;
    • 告诉我你的请求的答案是如何到达前端的
    猜你喜欢
    • 2017-12-24
    • 2017-08-02
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2016-06-25
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多