Update database tapi dari array

Kasusnya kaya gini gan dari halaman seperti ini diterima sama cancel ane buat form berupa hidden untuk statusnya diterima atau gak, yang jadi masalah pas ane update ga bsa, dari pesan errornya karna ini array / collection bingung mau update yang mana.. gimana ya cara akalinnya ini pesan errornya :

ini viewnya :

 <td>
                    @if ($reservation->status == 0)
                      <form action="reservation" method="post">
                        {{ csrf_field() }}
                        <input type="hidden" name="status" value="1">
                        <button type="submit" name="submit" class="btn btn-info">
                          <span class="glyphicon glyphicon-ok"></span>
                          Terima
                        </button>
                      </form>
                      <form action="reservation" method="post">
                        {{ csrf_field() }}
                        <input type="hidden" name="status" value="2">
                        <button type="submit" name="submit" class="btn btn-info">
                          <span class="glyphicon glyphicon-trash"></span>
                          Cancel
                        </button>
                      </form>
                    @elseif ($reservation->status == 1)
                      <span class="glyphicon glyphicon-ok"></span>
                      Diterima
                    @else
                      <span class="glyphicon glyphicon-trash"></span>
                      Dicancel
                    @endif

                  </td>

ini controllernya :

   public function confirmation($id, Request $request)
    {
      $user = User::find($id);
      $reservations = Reservation::whereHas('room', function ($query) use($id) {
      $query->where('user_id', '=', $id);
      })->get();

      $reservations->status->update([
        'status' => $status
      ]);

      return view('reservation.show', [
        'user' => $request->user,
        'reservations' => $reservations
      ]);
    }

mohon pencerahannya gann :D segala respon ane appreciated :D

avatar nanto88
@nanto88

122 Kontribusi 56 Poin

Diperbarui 6 tahun yang lalu

9 Jawaban:

itu agan ngelempar, 'reservations' <- dengan plural ['reservation.show', [
'user' => $request->user,
'reservations' => $reservations
]](;

)

di view agan get $reservation?

avatar adib
@adib

40 Kontribusi 16 Poin

Dipost 6 tahun yang lalu

kan foreach selalu plural dengan as singular, atau sebaliknya ini view table lengkapnya gan

 @foreach ($reservations as $reservation)
                  <tr>
                  <td> {{ $reservation->start_date }} </td>
                  <td> {{ $reservation->end_date }} </td>
                  <td>
                    <a href="/room/{{ $reservation->room_id }}">
                      {{ $reservation->room->name }}
                    </a>
                  </td>
                  <td> Rp. {{ $reservation->room->price }} </td>
                  <td>
                    <?php
                      $start     = date_create($reservation->start_date);
                      $end       = date_create($reservation->end_date);
                      $interval  = $start->diff($end)->format('%a');
                      $total    = ($interval * $reservation->room->price);
                     ?>
                    Rp. {{ $total }}
                  </td>
                  <td>
                    @if ( $reservation->user->fullname == null )
                        {{ $reservation->user->name }}
                    @else
                        {{ $reservation->user->fullname }}
                    @endif
                  </td>
                  <td> {{ $reservation->user->phone }} </td>
                  <td>
                    @if ($reservation->status == 0)
                      <form action="reservation" method="post">
                        {{ csrf_field() }}
                        <input type="hidden" name="status" value="1">
                        <button type="submit" name="submit" class="btn btn-info">
                          <span class="glyphicon glyphicon-ok"></span>
                          Terima
                        </button>
                      </form>
                      <form action="reservation" method="post">
                        {{ csrf_field() }}
                        <input type="hidden" name="status" value="2">
                        <button type="submit" name="submit" class="btn btn-info">
                          <span class="glyphicon glyphicon-trash"></span>
                          Cancel
                        </button>
                      </form>
                    @elseif ($reservation->status == 1)
                      <span class="glyphicon glyphicon-ok"></span>
                      Diterima
                    @else
                      <span class="glyphicon glyphicon-trash"></span>
                      Dicancel
                    @endif

                  </td>
                </tr>
            @endforeach
avatar nanto88
@nanto88

122 Kontribusi 56 Poin

Dipost 6 tahun yang lalu

ohh ternyata udah di foreach, nahh coba di dd aja dulu $reservations-nya biar tau isinya

avatar adib
@adib

40 Kontribusi 16 Poin

Dipost 6 tahun yang lalu

di dd bisa gan keliatan isinya semua reservasi dari semua room yg dimiliki user yg terautentikasi, tapi pas mau update nya itu gan, ga bsa, ane baca2 di stackoverflow di looping arraynya ada indexrow klo ga salah jadi didefinisiin pas perulangan itu perulangan keberapa nantinya klo mau update bsa tau array keberapa tapi msh blm paham mau cari2 lg ane, info2 klo tau ya gan :D

avatar nanto88
@nanto88

122 Kontribusi 56 Poin

Dipost 6 tahun yang lalu

sundull gan

avatar nanto88
@nanto88

122 Kontribusi 56 Poin

Dipost 6 tahun yang lalu

sundull gann

avatar nanto88
@nanto88

122 Kontribusi 56 Poin

Dipost 6 tahun yang lalu

ini isinya apaan coba boleh liat gak?

avatar adib
@adib

40 Kontribusi 16 Poin

Dipost 6 tahun yang lalu

ini dd nya gann

ini isi dari tabel reservasi, dari function show nya..

ane dapet sedikit pencerahan jadi katanya di form nya name="status[$i->id]" , jadi status[array dari perulangan id nya] nanti pas update nentuin id keberapa dan statusnya jadi apa.. tapi msh blm tau caranya

ini dd hasil $request->status array dari status 3 isinya 2

code yg mendekatinya kira2.. tabel reservasi dimana id nya array dari status -> update ( status => isi array status )

mohon pencerahannya gannn (Y)

avatar nanto88
@nanto88

122 Kontribusi 56 Poin

Dipost 6 tahun yang lalu

Jawaban Terpilih

Akhirnya sudah solveddd ternyata pakai foreach as key => value thanks yg udah respon :D

ini codenya


foreach ($request->status as $key => $data ) {

                       $input = [
                           'status' => $data,
                       ];
                       DB::table('reservations')->where('id',$key)->update($input);
                }
avatar nanto88
@nanto88

122 Kontribusi 56 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban