// Vuejs2 // Laravel v7.x
我向您求助,因为我封锁了,找不到解决方案。 我想在控制器中的对象中恢复数据。 在View.vue中,我发布了axios帖子
data() {
return {
customer: {
name: 'abc',
login: 'def'
},
file: null
}
},methods: {
submit(){
let formData = new FormData();
formData.append("customer", this.customer);
formData.append("file", this.file);
axios.post('/project/new',
formData, {
headers: {
"Content-Type": "multipart/form-data"
}
}).then(data => {
console.log(data.data);
});
}
}
我这样收集我的控制器
public function postProject(Request $request)
{
return $request->customer; //return [Object Object]
return $request->customer->name; //return Trying to get property 'name' of non-object
return $request->customer['name']; //return Illegal string offset 'name'
return $request->file; //return [Object Object]
}
谢谢。祝你有美好的一天。
答案 0 :(得分:2)
您不能使用.append
将对象添加到FormData中。
看https://developer.mozilla.org/en-US/docs/Web/API/FormData/append,该方法仅接受USVString或Blob作为值。其他所有内容都强制转换为String。
JavaScript中标准对象的字符串表示形式为[object Object]
。
您可以尝试JSON.stringify(this.customer)
将其转换为其JSON表示形式。
答案 1 :(得分:0)
尝试$ request-> get('customer')或$ request-> input('customer')