gpt4 book ai didi

javascript - 使用 Laravel ORM hasmany 和 Vue 2 在 Laravel 中过滤数据

转载 作者:行者123 更新时间:2023-12-03 03:53:50 24 4
gpt4 key购买 nike

对不起,我使用 Laravel ORM 与 Vue 2 有很多关系。

分析Json数据有些问题..

laravel ORM

$banner = Banner::with('banner_img')->get();
return response()->json($banner);

Json数据

[{"id":10,"banner":"AIR","banner_img":[{"id":1,"img":"air_1.png","banner_id":10},{"id":2,"img":"air_2.png","banner_id":10}]},
{"id":11,"banner":"HOT","banner_img":[{"id":3,"img":"hot_1.png","banner_id":11},{"id":4,"img":"hot_2.png","banner_id":11}]},
{"id":12,"banner":"NEW","banner_img":[{"id":5,"img":"new_1.png","banner_id":12},{"id":6,"img":"new_2.png","banner_id":12}]}]

我的 json 数据有两个数组。

我想用 Vue.js 过滤这个 json 数据(banner_img:['img'])。

Vue.js

var app = new Vue({
el: '#app',
data: {
banner:[],
search:'',
},
methods: {
getBannerData: function() {
axios.get('/case/ajax/33').then(response => {
this.banner = response.data.banner;
});
},
},
mounted: function() {
this.getBannerData();
},
computed: {
filteredList() {
return this.banner(value => {
return value.banner.banner_img.img.toLowerCase().includes(this.search.toLowerCase())
})
}
}
});

HTML

<input type="text" name="ImgFilter" v-model="search">
<div v-for="value in filteredList">
<img v-for="imgs in value.banner_img" :src="imgs.img" height="100">
</div>

然后我尝试 return value.banner.banner_img.img ,但错误..

请大家给我一些建议~!谢谢!

最佳答案

根据您的 JSON 示例,每个对象的属性 banner_img 上都有一个值数组。因此 value.banner.banner_img.img 不正确,因为 value.banner 没有属性 banner_img

试试这个:

filteredList() {
return this.banner.filter(value => {
return value.banner_img.filter(bannerImg => {
return bannerImg.img.toLowerCase().includes(this.search.toLowerCase());
});
});
}

关于javascript - 使用 Laravel ORM hasmany 和 Vue 2 在 Laravel 中过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45048928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com