首页 > 解决方案 > 以 Laravel 形式创建对象数组

问题描述

我想使用 Laravel 从表单创建对象数组(或二维数组)

Blade.php 看起来像

@foreach($objets as $objet)
<tr>
    <td>
        <input type="text" name="objets[]" id="field_A" value="{{$objet->field_A}}">
    </td>
    <td>
        <input type="text" name="objets[]" id="field_B" value="{{$objet->field_B}}">
    </td>
</tr>
@endforeach

目前,在验证表单时,变量 $objets 是一个包含所有值的数组,但不是数组数组。

标签: phplaravel

解决方案


更新您的输入名称,如下所示:

<td>
  <input type="text" name="objets[][fieldA]" id="field_A" value="{{$objet->field_B}}">
</td>
<td>
  <input type="text" name="objets[][fieldB]" id="field_B" value="{{$objet->field_B}}">
</td>

上面将输出一个带有数组的数组

"objects" => array:1 [▼
                0 => array:7 [▼
                   'fieldA' => 'value'
                   'fieldB' => 'value'
                ]
             ]

然后在您的验证中,您可以像这样使用它:

$validate['objects.*.field_A'] = 'required';
$validate['objects.*.field_B'] = 'required';
return $validate;

推荐阅读