[英]Laravel + vue.js file upload put
我已經成功上傳了vue.js 1.0
這樣的文件(發布請求):
store () {
this.storingMessage = true;
var form = new FormData();
form.append('subject', this.message.subject);
form.append('message', this.message.message);
form.append('topic_id', this.message.topic_id);
for(var key in this.message.attachment) {
form.append('attachment[' + key + ']', this.message.attachment[key]);
}
MessageService.store(this, form);
}
但是當我嘗試更新這樣的文件時(放置請求):
update () {
this.updatingMessage = true;
var form = new FormData();
form.append('subject', this.message.subject);
form.append('message', this.message.message);
form.append('slug', this.message.slug);
for(var key in this.message.attachment) {
form.append('attachment[' + key + ']', this.message.attachment[key]);
}
MessageService.update(this, form);
}
在我的控制器中,我dd($request->all())
結果是[]
。
那么為什么它不能與put
一起使用????!?!?!?
服務:
store (context, form) {
return Vue.http.post('/api/message', form)
.then(({data}) => {
context.success();
}, (error) => {
context.error(error.data);
});
},
update (context, form) {
return Vue.http.put('/api/message/' + form.get('slug'), form)
.then(({data}) => {
context.success();
}, (error) => {
context.error(error.data);
});
}
根據Laracast 的討論,使用 put 方法和 formData 對象時似乎存在問題,避免這種情況的方法是使用方法欺騙。
試試這個,在你的更新方法中
let data = { _method : 'PATCH' , form : form}
return Vue.http.post('/api/message/' + form.get('slug'), data)
.then(({data}) => {
context.success();
}, (error) => {
context.error(error.data);
});
在這種情況下,您的控制器中的數據將以form
提供
$request->form
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.