如何使用Laravel / Vue JS修复数组输入值

时间:2019-02-19 11:48:57

标签: laravel laravel-5 vue.js

这是Laravel 5项目。 我有一个标准表格正在提交。我正在尝试发送从在vue组件中添加的搜索功能的结果中单击的每个帐户的ID。

然后,将单击的详细信息存储在称为“ grantedUsers”的隐藏形式输入中。这具有存储多个值的能力。因此,我使用了GrantUsers []这个名称。

在将表单提交给后端后,我就对值进行了DD处理,它显示了所有值,但在一个索引中而不是每个索引中都有单独的索引。使其更难以有效处理数据。

我显然将值错误地提交给隐藏的输入。将每个ID分成单独的索引将为您提供任何帮助。

代码

<input type="hidden" name="grantedUsers[]" :value="hiddenData">

//hiddenData is an empty array at initialisation.
data() {
  return {
      keywords: null,
      results: [],
      granted: [],
      hiddenData: []
  };
},

addUser(result) {
   this.granted.push(result);
   this.results.splice(this.results.indexOf(result), 1);

   this.hiddenData.push(result.id);
},

removeUser(grantee) {
   this.results.push(grantee);
   this.granted.splice(this.granted.indexOf(grantee), 1);

   this.hiddenData.splice(this.hiddenData.indexOf(grantee.id), 1);
}
//The backend is outputting this on the DD
array:1 [▼
  0 => "1,2"
]

我正在努力证明

array:2 [▼
  0 => "1"
  1 => "2"
]

1 个答案:

答案 0 :(得分:0)

仅在您有多个具有该名称的输入字段时,才在输入字段的名称中添加[]。不会将单个字段的值转换为数组。

因此,您只需从名称中删除[],然后对字符串进行简单的explode使其成为数组即可。

dd(explode(',', $request->grantedUsers));