首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue / Laravel -编辑时显示空值的Formdata.append

Vue / Laravel -编辑时显示空值的Formdata.append
EN

Stack Overflow用户
提问于 2020-05-13 16:58:21
回答 1查看 134关注 0票数 0

我有一个有效的post方法来存储照片+用户的名字。

代码语言:javascript
复制
 // 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_nameput方法是成功的,但是值显示为空

代码语言:javascript
复制
  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,新值输入仍然不会被捕获。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-13 17:54:52

它也是一个known bug on PHPSymfony和Laravel,一个变通方法是将带有PATCHPUT值的_method参数附加到您的formdata中,并改用axios.post

代码语言:javascript
复制
formData.append('_method', 'PUT');
await axios.post(
    '/api/employees/' + this.tableItem.id,
    formData,
    //{...

有关更多信息,请查看Laravel repo上的此问题:https://github.com/laravel/framework/issues/13457#issuecomment-340156084

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61770340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档