【问题标题】:How to insert array to the BD Laravel如何将数组插入 BD Laravel
【发布时间】:2019-05-09 18:31:41
【问题描述】:

我有一个咨询,我需要插入一个从视图的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');
}

名称、价格和数量的值返回我空值。

dd($request) 的结果返回了正确的数组值

【问题讨论】:

  • 请在您的问题中添加dd($request) 结果,然后我可以为您提供更好的帮助。

标签: laravel laravel-5.7


【解决方案1】:

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);

【讨论】:

  • 感谢您的回复,但是在插入数据时,它们仍然为空。
  • 我已经编辑了答案。请尝试更新后的代码。
【解决方案2】:

这样的东西可以帮助你

$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);
    }

【讨论】:

  • 感谢您的帮助,我不知道为什么它在其他方面不起作用,但是使用这种语法是的。
  • 不客气。我对仓库项目也有类似的问题。
猜你喜欢
  • 2015-11-06
  • 2019-03-16
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
  • 2020-05-01
  • 2019-09-26
  • 2018-01-31
相关资源
最近更新 更多