我有一个有效的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,则一切都正常工作。即使i为Object.assign设置了一个await,新值输入仍然不会被捕获。
发布于 2020-05-13 17:54:52
它也是一个known bug on PHP、Symfony和Laravel,一个变通方法是将带有PATCH或PUT值的_method参数附加到您的formdata中,并改用axios.post:
formData.append('_method', 'PUT');
await axios.post(
'/api/employees/' + this.tableItem.id,
formData,
//{...有关更多信息,请查看Laravel repo上的此问题:https://github.com/laravel/framework/issues/13457#issuecomment-340156084
https://stackoverflow.com/questions/61770340
复制相似问题