Vuejs函数具有多个数据

时间:2018-09-13 12:41:10

标签: laravel vue.js

我在vue应用中有两个数据表。

  • 现金[代码,说明,现金]
  • 上传[bank,id]

对于我的更新功能,我需要从上传中提取[银行,身份证],从现金中提取[现金]。我不知道如何,有人可以帮忙吗?谢谢。这是我的代码

这是我的vuejs

var app = new Vue({
    el: '#app',
    data: {
        cash: {
            codeentry: '',
            description: '',
            cash: '',
        },
        upload: {
            bank: '',
            id: '',
        },
    },
    methods: {
        updateBank: function () {
            axios.put('/updatebank', this.upload, this.cash)
                .then(response => {
                    if (response.data.etat) {
                        this.upload.id = response.data.etat.id
                        this.upload.bank = response.data.etat.bank
                        this.cash.cash = response.data.etat.cash

                    }

                })
                .catch(error => {
                    console.log('errors: ', error)
                })
        },
    }
});

我的路线:

Route::put('/updatebank', 'CoinController@updateBank');

控制器:

public function updateBank(Request $request)
{
    $coin = Coin::findOrFail($request->id);
    $coin->bank = ($request->bank - $request->cash);
    $coin->save();
}

当我执行我的功能并查看报告时。仅考虑this.upload。

1 个答案:

答案 0 :(得分:0)

如果要在一个对象中包含两个数据,则可以从这两个对象中创建一个新对象

Es6示例:

            const {bank,id} = this.upload;
            const {cash} = this.cash;
            const my_data = {
                bank, id, cash
            }

旧的Js示例

            var my_data = {
                cash: this.cash.cash,
                bank: this.upload.bank,
                id: this.upload.id,
            }

否则,如果要在请求中将两者都作为单独的对象,则将它们{}

包裹起来
            var my_data = {
                upload: this.upload,
                cash: this.cash
            }

最后:

            axios.put('/updatebank', my_data)
                ...

更新:您似乎不想将这些对象合并为其他子对象,因此您的updateBank方法如下:

    updateBank: function () {
        const my_data = {
            cash: this.cash.cash,
            bank: this.upload.bank,
            id: this.upload.id,
        };

        axios.put('/updatebank', my_data)
            .then(response => {
                if (response.data.etat) {
                    this.upload.id = response.data.etat.id
                    this.upload.bank = response.data.etat.bank
                    this.cash.cash = response.data.etat.cash

                }

            })
            .catch(error => {
                console.log('errors: ', error)
            });
    }
  

只是一个旁观者,您确定响应中的this引用了您的Vue对象吗?