【问题标题】:Laravel : How to Update multiple Select option with select2.jsLaravel:如何使用 select2.js 更新多个 Select 选项
【发布时间】:2018-12-11 03:06:34
【问题描述】:

我想更新我的数据库,但它在选项字段中发送重复值。

这是我的 HTML 代码:

<select name="size_id[]" multiple="multiple" style="margin-bottom:15px;"
        class="form-control select_multiple">
  @foreach($sizes as $skey=>$sitem)
        @foreach ($product->Sizes as $pkey=>$psize)
                <option value="{{$sitem->id }}"}} @if($sitem->id == $psize->id)selected="selected"@endif>
                    {{ $sitem->name}}+{{$skey}}
                </option>
        @endforeach
    @endforeach
</select>

产品型号:

 public function Sizes()
    {
        return $this->belongsToMany(Size::class,'product_sizes');
    }

尺寸型号:

public function Products()
{
    return $this->belongsToMany(Product::class, 'size_products','product_id','size_id');
}

【问题讨论】:

  • $sitem-&gt;id 将形成 select2 的键,并且因为您在内部循环中使用它,所以它会被重复。
  • 怎么解决
  • @if($sitem-&gt;id == $psize-&gt;id)你为什么这样做?
  • 只是为了添加标签

标签: php html database laravel eloquent


【解决方案1】:

您可以使用 Collections containsStrict 来检查它的项目 id 是否等于任何尺寸,如下所示:

<select name="size_id[]" multiple="multiple" style="margin-bottom:15px;"
                                            class="form-control select_multiple">
@foreach($sizes as $skey=>$sitem)                                   
        <option value="{{$sitem->id }}"}} @if($product->Sizes->containsStrict('id', $item->id)) selected="selected" @endif>
        {{ $sitem->name }}+{{ $skey }}
    </option>
 @endforeach                                       
</select>

【讨论】:

    猜你喜欢
    • 2023-02-22
    • 1970-01-01
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    相关资源
    最近更新 更多