Laravel 5.3 Vue 2 Laravel 5.3按列之一对对象进行分组';s值
我的项目允许客户将项目放入购物车。其中每个项目都与具有Laravel 5.3 Vue 2 Laravel 5.3按列之一对对象进行分组';s值,laravel-5.3,vuejs2,Laravel 5.3,Vuejs2,我的项目允许客户将项目放入购物车。其中每个项目都与具有店铺id的店铺相关。我想在购物车视图中列出项目。但是,我希望将这些项目分组到具有相同店铺id的表下。因此,如果客户从3个不同的商店购买,cart视图中将有3个表,其中每个表由客户从该商店购买的相应项目组成。有什么好办法吗 这是我未完成的Cart.vue代码供您参考,但我认为它不会有多大帮助 <template> <div class="row"> <div class="col-md-12 car
店铺id的店铺相关。我想在购物车视图中列出项目。但是,我希望将这些项目分组到具有相同店铺id
的表下。因此,如果客户从3个不同的商店购买,cart视图中将有3个表,其中每个表由客户从该商店购买的相应项目组成。有什么好办法吗
这是我未完成的Cart.vue代码供您参考,但我认为它不会有多大帮助
<template>
<div class="row">
<div class="col-md-12 cart-container">
<table class="table table-hover" v-for="cart in carts">
<thead>
<tr>
<th>{{cart.shop.name}}</th> //cart includes shop by eloquent
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="cart-img-wrapper">
<img class="cart-img" :src="cart.product_choice.img1">
</div>
</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
</tbody>
</table>
</div>
</div>
</template>
<script>
export default {
data(){
return{
carts:{},
}
},
props:[
],
mounted(){
this.getCartItems()
},
updated(){
},
methods:{
getCartItems(){
var vm = this
vm.$http.get('/getCartItems/').then((response)=>{
vm.carts = response.data
});
},
},
computed:{
}
}
</script>
这应该可以通过对数据库进行分组查询来解决。如果您正在使用,您可以编写如下查询:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
如果您有javascript数组,并且希望处理该数组,则可以编写类似于以下内容的方法:
var groupBy = function(xs, key) {
return xs.reduce(function(rv, x) {
(rv[x[key]] = rv[x[key]] || []).push(x);
return rv;
}, {});
};
然而,一般来说,将这些事情委托给数据库更有效,也更不容易出错
var groupBy = function(xs, key) {
return xs.reduce(function(rv, x) {
(rv[x[key]] = rv[x[key]] || []).push(x);
return rv;
}, {});
};