我在vue应用中有两个数据表。
对于我的更新功能,我需要从上传中提取[银行,身份证],从现金中提取[现金]。我不知道如何,有人可以帮忙吗?谢谢。这是我的代码
这是我的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。
答案 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对象吗?