Laravel: Как обновить опцию множественного выбора с помощью select2.js - PullRequest
0 голосов
/ 03 июля 2018

Я хочу обновить свою базу данных, но она отправляет повторное значение в поле параметра.

enter image description here

Вот мой 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');
}

1 Ответ

0 голосов
/ 03 июля 2018

Вы можете использовать Коллекции containsStrict , чтобы проверить, имеет ли он идентификатор элемента, равный любому из размеров, подобных этому:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...