如何插入数组到BD Laravel

How to insert array to the BD Laravel

我有一个咨询,我需要插入一个我从视图的 foreach 获得的数组,但是在控制器中执行请求的那一刻我得到所有的值都是空的.

查看

@foreach($product as $prod)
<tr>
    <td>                                            
        <input  type ="text" name="name[]" value="{{ $prod->name}}" readonly="readonly">
    </td>
    <td>                                           
        <input type="text" name="price[]" class="price" value="{{ $prod->price}}" readonly="readonly">
    </td>
    <td>
        <input type="number" min="1" max="100" class="quantity" value="1" name="quantity[]">
    </td>
</tr>

@endforeach 

控制器

public function store(Request $request)
{
    for($i=0;$i<=2;$i++){
        $detail= new Detail;
        $detail->name= $request->input('name['.$i.']');
        $detail->quantity= $request->input('quantity['.$i.']');
        $detail->price= $request->input('price['.$i.']');
        $detail->created_at = Carbon::now();
        $detail->updated_at = Carbon::now();
        $detail->save();
   }

   return redirect()->route('view')->with('success','Exit');
}

值名称、价格和数量return我是空值。

dd($request) 的结果return编辑了数组的正确值

for 控制器中的循环应该如下所示: 我创建了一个数组来存储数据,然后批量插入整个数组。

$now = Carbon::now()->toDateTimeString();
$data = [];
for($i= 0; $i <= 2; $i++){
    $data[] = [
        'created_at'=>$now, 
        'updated_at'=>$now,
        'name' => $request->input("name[$i]"), //changed quotes type. 
        'price= $request->input("price[$i]")
        /* similar for other fields....*/

    ];
}

Detail::insert($data);

像这样的东西可以帮助你

$input = $request->all();

    for($i=1; $i<= count($input['quantity']); $i++) {

      $data = [ 
        'name' => $input['name'][$i],
        'price' => $input['price'][$i],
        'quantity' => intval($input['quantity'][$i])
      ];

      Detail::create($data);
    }