Несколько раз одни и те же данные отображаются в выпадающем списке Select 2

У меня есть поле выбора в форме обновления с другим типом оплаты. Мне нужно выбрать несколько данных. Если у пользователя уже есть тип платежа в таблице, извлеките данные и загрузите в поле выбора. Я добавил эту функцию, но в раскрывающемся списке несколько раз отображаются данные. Пожалуйста, найдите изображение, которое я приложил.

введите описание изображения здесь

На самом деле у пользователя есть три типа оплаты. В раскрывающемся списке эти типы платежей отображаются три раза.

Пожалуйста, проверьте код, указанный ниже, и исправьте меня.

$cabin->payment_type = payment type from user table

$cabinInfo->paymentType() = Generating array in controller

update.blade.php

@inject('cabinInfo', 'App\Http\Controllers\Cabinowner\DetailsController')
<select id="payment" name="payment" class="form-control payment" multiple="multiple" data-placeholder="Choose payment type" style="width: 100%;">
@foreach($cabin->payment_type as $payment)
@foreach($cabinInfo->paymentType() as $paymentTypeKey => $paymentType)
<option value="{{ $paymentTypeKey }}" @if($paymentTypeKey == $payment || old('payment') == $payment) selected="selected" @endif>{{ $paymentType }}</option>
@endforeach
@endforeach
</select>

скрипт

/* Multiple select for payment */
$(".payment").select2();

UpdateController.php

public function index()
{
$cabin       = Cabin::where('id', Auth::user()->id)
->first();
return view('update', ['cabin' => $cabin]);
}public function paymentType()
{
$array = array(
'0' => "Cash",
'1' => "Debit Card",
'2' => "Credit Card",
);

return $array;
}

0

Решение

Я предполагаю что $cabin->payment_type возвращает массив? Если это так, ваша логика должна выглядеть примерно так:

@inject('cabinInfo', 'App\Http\Controllers\Cabinowner\DetailsController')
<select id="payment" name="payment" class="form-control payment" multiple="multiple" data-placeholder="Choose payment type" style="width: 100%;">
@foreach($cabinInfo->paymentType() as $paymentTypeKey => $paymentType)
<option value="{{ $paymentTypeKey }}" @if(in_array($paymentTypeKey, $cabin->payment_type )|| in_array(old('payment'), $cabin->payment_type )) selected="selected" @endif>{{ $paymentType }}</option>
@endforeach
</select>
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector