Edit checkbox value dari database di laravel

Halo semua,

Saya ada tabel user seperti dibawah

    id |    name    |   pic   |     level     |  team
    1     John          3           user
    2     Ipsum         4           user
    3     Lorem         5          supervisor
    4     Dolor Amet    5           admin
    5     Amet                     manager        3,4
    6     Diego         7           user
    7     Michael       5           supervisor

Saya ingin menampilkan di view laravel, jika user dengan level admin bisa memilih tim supervisor siapa yang dia mau liat. Saya coba pake checkbox, sudah bisa untuk input ke table dengan menggunakan koma, tapi ketika manager ingin mengganti tim yang ingin dia liat, muncul double view seperti dibawah

      Lorem (checked) | Dolor Amet | Michael
      Lorem | Dolor Amet (checked)| Michael

Padahal harusnya munculnya seperti ini

      Lorem (checked) | Dolor Amet (checked) | Michael

Untuk kode di controllernya seperti dibawah ini

        $query = DB::table('users')->where('id',$id)->first();

        $list=explode(',', $query->team);
        $result = DB::table('users')->whereIn('id',$list)->get();


        $supervisor = Users::where('level','supervisor')->orWhere('level','admin')->get()

Untuk kode di view blade nya

        <div class="form-group">
                                <label>Spv</label>

                                @foreach($result as $res)

                                    <div class="checkbox">
                                        @foreach($supervisor as $spv)
                                            @if($spv->id == $res->id)
                                            <label>
                                                <input type="checkbox" name="spv[]" value="{{ $spv->id }}" checked>{{ $spv->name }}

                                            </label>
                                            @else
                                            <label>
                                                <input type="checkbox" name="spv[]" value="{{ $spv->id }}">{{ $spv->name }}

                                            </label>
                                            @endif

                                        @endforeach

                                    </div>

                                @endforeach
                            </div>

Error code saya ada dimana ya, terima kasih sebelumnya

avatar ikramshabri
@ikramshabri

4 Kontribusi 1 Poin

Diperbarui 5 tahun yang lalu

Tanggapan

saat menulis pertnayaan coba indentasi kodenya dibikin llebih nyaman dibaca, biar yang mau bantu tidak perlu scroll ke samping terlalu jauh

2 Jawaban:

Jawaban Terpilih

Saya tidak mengerti cara kamu menyimpan di checked atau tidak. Tapi jawaban Kenapa keluar datanya double, karena kamu punya dua sumber data yang beda, dan ngeloop satu per satu di resultnya

Coba kalau querynya digabung <pre> $result = Users::where('level','supervisor')-&gt;orWhere('level','admin')-&gt;whereIn('id',$list)-&gt;get() </pre>

Mungkin alternatif lain, coba ambil data team sebagai array. Nanti di view bladenya cek dengan php biasa, apakah id yang sedang di loop ada di array tersebut

avatar hilmanski
@hilmanski

2686 Kontribusi 2135 Poin

Dipost 5 tahun yang lalu

Halo kak, sudah ketemu caranya, di view nya ditambah fungsi in_array value checked nya, terima kasih

avatar ikramshabri
@ikramshabri

4 Kontribusi 1 Poin

Dipost 5 tahun yang lalu

Tanggapan

sama sama terimakasih sudah share jawabannya

Login untuk ikut Jawaban