我有一个有效的post
方法,用于存储照片和用户的名字。
// front-end
let formData = new FormData();
formData.append('photo', this.tableItem.photo);
formData.append('first_name', this.tableItem.first_name);
await axios.post('/api/employees', formData, { headers: { 'Content-Type': 'multipart/form-data' }})
// back-end
$employee = Employee::create([
'first_name' => $request->first_name,
]);
现在,如果我编辑first_name
,则put
方法是成功的,但是该值显示为空白
Object.assign(this.tableData[this.editedIndex], this.tableItem)
let formData = new FormData();
formData.append('photo', this.tableItem.photo);
formData.append('first_name', this.tableItem.first_name);
await axios.put('/api/employees/' + this.tableItem.id, formData, { headers: { 'Content-Type': 'multipart/form-data' }})
$employee->update([
'first_name' => $request->first_name,
]);
如果我删除了formData
并将其替换为this.tableItem
,则一切正常。即使我为await
放置了Object.assign
,仍然无法捕获新值输入。
答案 0 :(得分:1)
它也是known bug on PHP,Symfony和Laravel,一种解决方法是将_method
或PATCH
值的PUT
参数附加到您的{{ 1}},而改用formdata
:
axios.post
在Laravel存储库上查看此问题以获取更多信息:https://github.com/laravel/framework/issues/13457#issuecomment-340156084