1

我正在使用 Laravel 5 开发一个以二维数组作为输入的 HTML 表单。目的是存储一些联系人,每个联系人的输入字段可以由 JQuery 动态添加或删除。

我想使用空括号 [] 这样就不需要维护索引。所以我尝试了 2 例 HTML 表单输入代码。以下是简化示例:

情况1:

Person 1:
<input type="text" name="contacts[][surname]">
<input type="text" name="contacts[][first_name]">
<input type="checkbox" name="contacts[][VIP]">

Person 2:
<input type="text" name="contacts[][surname]">
<input type="text" name="contacts[][first_name]">
<input type="checkbox" name="contacts[][VIP]">

但是我使用 die dump 检查的数组即dd($request->input('contacts'));返回:

array:4 [
  0 => array:1 ["surname" => "Some Value" ]
  1 => array:1 ["first_name" => "Some Value" ]
  2 => array:1 ["surname" => "Some Value" ]
  3 => array:1 ["first_name" => "Some Value" ]
]

让我们暂时忘记复选框输入,因为它在未选中时根本不会返回任何内容。话虽如此,我已将其包含在此处,以防它是问题的根源。

案例2

Person 1:
<input type="text" name="contacts[surname][]">
<input type="text" name="contacts[first_name][]">
<input type="checkbox" name="contacts[VIP][]">

Person 2:
<input type="text" name="contacts[surname][]">
<input type="text" name="contacts[first_name][]">
<input type="checkbox" name="contacts[VIP][]">

模具转储即dd($request->input('contacts'));返回以下:

array:2 [
  "surname" => array:2 [
    0 => "Some Value"
    1 => "Some Value"
  ]
  "first_name" => array:2 [
    0 => "Some Value"
    1 => "Some Value"
  ]
]

我想要的是

这给我们带来了这个问题。这是我想要的结果:

array:2 [
  0 => array:2 [
    "surname" => "Some Value"
    "first_name" => "Some Value"
  ]
  1 => array:2 [
    "surname" => "Some Value"
    "first_name" => "Some Value"
  ]
]

有没有办法做到这一点,如果是,我该如何实现?这是否意味着我必须维护一个索引?

4

1 回答 1

0

尝试这个。

Person 1:
<input type="text" name="contacts[0][surname]">
<input type="text" name="contacts[0][first_name]">
<input type="checkbox" name="contacts[0][VIP]">

Person 2:
<input type="text" name="contacts[1][surname]">
<input type="text" name="contacts[1][first_name]">
<input type="checkbox" name="contacts[1][VIP]">
于 2015-06-23T18:36:46.797 回答