【问题标题】:How to save array data from multiple select in Laravel using Eloquent如何使用 Eloquent 在 Laravel 中从多个选择中保存数组数据
【发布时间】:2021-01-12 19:11:41
【问题描述】:

我想将来自多选的数据保存到数据库中。因此,用户可以在多项选择中选择多个产品。我试过下面的代码,但我得到了这个错误“ErrorException Array to string conversion”。 这是我的blade.php

<div class="form-group row" style="display:none;" id="inputbarang">
<label class="col-form-label col-lg-3 col-sm-12">Barang</label>
    <div class="col-lg-4 col-md-9 col-sm-12">
        <select class="form-control m-select2" width="500px" id="kt_select2_1" name="id_product[]" multiple="multiple">
                <option value=""></option>
                @foreach($produk as $p)
                <option value="{{ $p->id }}">{{ $p->product }}</option>
                @endforeach
        </select>
    </div>
</div>

这是我的控制器

$id_promo = Promo::select('id')
   ->where('delete', 0)->orderBy('created_at', 'DESC')
   // ->take(1)
   ->pluck('id')->first();

   $id_product = [];
   $id_product[] = $request->id_product;

   // $id_products = $id_product['id_product'];

   foreach ($id_product as $i) {
           DetailPromo::create([
           'id_promo' => $id_promo,
           'id_product' => $i,
           'det_potongan' => $request->potongan,
           'det_jumlah_potongan' => $request->jumlah_potongan
       ]);
       }

任何帮助将不胜感激,非常感谢您

【问题讨论】:

  • 看来$request-&gt;id_product 已经是一个数组了。您能否尝试直接使用foreach ($request-&gt;id_product as $i) ... 循环遍历它?
  • 哦,你说得对,它有效!非常感谢@WesleySmith

标签: php arrays laravel eloquent save


【解决方案1】:

试试下面的代码:

$id_promo = Promo::select('id')
    ->where('delete', 0)
    ->orderBy('created_at', 'DESC')
    // ->take(1)
    ->pluck('id')
    ->first()
;

$id_products = $request->id_product;
foreach ($id_products as $id_product) {
    DetailPromo::create([
        'id_promo' => $id_promo,
        'id_product' => $id_product,
        'det_potongan' => $request->potongan,
        'det_jumlah_potongan' => $request->jumlah_potongan
    ]);
}

【讨论】:

  • $id_products = $request-&gt;id_product; 在这里毫无意义。像$id_products = $request-&gt;id_product ?? [] 这样的东西会更有意义
猜你喜欢
  • 2017-10-02
  • 2020-06-15
  • 2015-03-23
  • 2021-09-07
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
  • 2018-01-02
相关资源
最近更新 更多