使用Vuejs在Laravel中对对象关系求和的数组

时间:2019-12-20 09:45:15

标签: laravel vue.js

我正在尝试使用SumamountVuejs的Laravel关系数组computed

enter image description here

通过返回NaN的结果。...

   computed: {
        subTotal() {
            return this.items.reduce((total, item) => {
                return total + parseFloat(item.deposits.amount);
            }, 0);
        }
    },

谢谢.....

2 个答案:

答案 0 :(得分:1)

下面的代码将为明智的在数组索引内的所有项目返回一个求和数组。

computed: {
    subTotal() {
        let itemsum = []
        this.items.forEach(item => {
            if (item.deposits && item.deposits.length > 0) {
                let total_deposit = item.deposits.reduce((total, val) => {
                    return  parseFloat(total.amount) + parseFloat(val.amount);
                }, 0);
                itemsum.push(total_deposit);
            } else {
                itemsum.push(0);
            }                  
        })
        return itemsum
    }
},

答案 1 :(得分:0)

  1. 在Laravel中求和关系

    protected $appends = ['deposit_amount'];

    public function getDepositAmountAttribute(){ return $this->deposits()->sum('amount'); }

  2. VueJS计算属性

    computed: { deposit_amount() { var amount = 0; for(let i = 0; i < this.item.deposits.length; i++) { amount += parseFloat(this.item.deposits[i].amount); } return amount; } }