【问题标题】:Save multiple inputs incremented [duplicate]保存多个输入递增[重复]
【发布时间】:2019-02-12 02:53:38
【问题描述】:

我在 for 循环中的输入加一:

<input type="number" name="device_id_1">
<input type="number" name="device_id_2">
...
<input type="number" name="name_1">
<input type="number" name="name_2">

我通过 ajax 将数据传递给控制器​​:

dd( $request->all());
//dd will return the data like:

"device_id_1" => "100"
"name_1" => "Some Name"
"device_id_2" => "200"
"name_2" => "Other type"
....

我在保存每个 device_id_X 和其余部分时遇到问题,我应该如何保存 foreach 循环中的数据有什么想法?

我当前的 foreach 循环当然不能正常工作:

       foreach ($devices as $index => $deviceId) {
            $devicesS[] = Device::create([
                'device_id' => $deviceId,
                'name' => $request->name_[$index],
                .....
            ]);
        }

【问题讨论】:

  • 我会使用&lt;input type="number" name="device_id[]"&gt;
  • 这将在 dd 已经尝试过时返回错误

标签: php html laravel eloquent


【解决方案1】:

你可以:

<input type="hidden" name="items[]">
<input type="number" name="device_id_1">
<input type="number" name="name_1">
...
<input type="hidden" name="items[]">
<input type="number" name="device_id_2">
<input type="number" name="name_2">

这将导致以下结果:

foreach ($request->items as $index => $item) {
    $devices[] = [
        'device_id' => $request->get('device_id_'. $index + 1),
        'name' => $request->get('name_'. $index + 1)
    ];
}

Device::insert($devices);

【讨论】:

    猜你喜欢
    • 2013-03-13
    • 1970-01-01
    • 2019-02-06
    • 2021-09-12
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    相关资源
    最近更新 更多