提交表单转发器值作为数组并遍历每个

时间:2018-10-21 07:32:09

标签: php json laravel php-5.3

我有一个这样的表单转发器 form repeater image

提交一个代码(在整个过程中都应该相同)以成千上万个产品名称和数量。例如

  • code-1234产品手册数量-5000
  • 代码1234产品笔数-3000
  • code-1234 product-ruler数量-2000

我想将上述所有数据作为json提交给db,其中ID为递增的ID(在这种情况下为10,000,产品名称在每个ID旁边)。产品名称应在其特定数量结束处结束,例如,当ID达到5000时,下一个ID应为5001,并开始显示pen。

我尝试了这个`

//array submited from form
$array = $request->get('arrayName');

foreach ($array as $key => $value) {
    $items[] = $value['no_of_items'];
    $a_sum = array_sum($items);

    $length = 15;
    $string = bin2hex(openssl_random_pseudo_bytes($length));
    $maxNumberOfItems = $a_sum;

    for ($a = 0; $a <= $maxNumberOfItems; $a++) {
        if ($a <= reset($items) && $a === $maxNumberOfItems) {
            $a = reset($items);
        }

        echo +$a . " => " . $value['item'] . "<br> ";
        $temp = bin2hex(openssl_random_pseudo_bytes($length));

        $coupons[] = [
             'id' => +$a,
             'item' => $value['item'],
             'code' => $temp,
             'item_status' => 'in-store',
         ];

    }`

它会正确显示名称,但不会如上所述自动增加ID。当它达到5000的那一刻,下一项从0而不是5001开始。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可能需要手动获取MAX(id)并执行以下操作:

for($ a = $ maxId; $ a <= $ maxNumberOfItems + $ maxId; $ a ++)