повторяющееся значение в теге select2 на шаблоне laravel blade - PullRequest
1 голос
/ 08 апреля 2020

Я обнаружил ошибку при попытке отобразить данные в теге select2. Я получил дубликаты данных и хочу знать, как их исправить. Я использую laravel 7 и вот мой код

Это мой код контроллера:

public function editLocation(Request $request,$id){
$mtFasilitas = DB::table('MT_Facility')->select('id','name')
                                        ->get();
$trFasilitas = DB::table('TR_Fasilitas')->select('idMtFasilitas')
                                         ->where('idDetailLokasi',$id)
                                         ->get();
return view('layout.back.content_kos.edit_kos',['mtFas' => $mtFasilitas, 'trFas' => $trFasilitas]);

}

Это мой шаблон лезвия:

<select class="js-example-basic-multiple form-control mb-4" name="fasilitas[]" multiple="multiple">
                @foreach ($mtFas as $key => $data)
                    @foreach ($trFas as $key2 => $data2)
                        <option value="{{$data->id}}"{{$data2->idMtFasilitas == $data->id ? 'selected="selected"' : ''}}> {{ $data->name}}</option> 
                    @endforeach
                @endforeach
 </select>

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

Кто-нибудь может мне помочь? Спасибо

Ответы [ 3 ]

1 голос
/ 08 апреля 2020
$trFasilitas = DB::table('TR_Fasilitas')->select('idMtFasilitas')
                                         ->where('idDetailLokasi',$id)
                                         ->get()
                                         ->pluck('idMtFasilitas')
                                         ->all();
        <select class="js-example-basic-multiple" name="fasilitas[]" multiple="multiple">
            @foreach ($mtFas as $data)
            <option value="{{ $data->id }}" {{in_array($data->id, $trFas) ? 'selected="selected"' : '' : ''}}>
                {{ $data->name }}</option>
            @endforeach
        </select>

Я думаю, что это должно сделать.

0 голосов
/ 08 апреля 2020

Согласно вашим данным

$ mtFasilitas = [{"id": 4, "name": "a"}, {"id": 5, "name": "b"}, { "id": 6, "name": "c"}]

$ trFasilitas = [{"idMtFasilitas": 4}, {"idMtFasilitas": 5}]

Ваш внутренний l oop работает дважды для каждого отдельного значения внешнего l oop, поэтому данные печатаются дважды.

0 голосов
/ 08 апреля 2020

Это результат вашего обновленного ответа сэр @Andy Song enter image description here

...