Bagaimana cara agr data di checked masuk ke database & mengabaikan data tidak di checked, laravel?

saya punya form transaksi, saya ingin membeli data yang berada di checkbox kedua dan ketiga tetapi datanya null tidak terpanggil, errornya...

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'jumlah_alat' cannot be nullINSERT INTO
  `transaksialats` (
    `ID_Transaksi`,
    `ID_Alat`,
    `jumlah_alat`,
    `jumlah_harga_alat`
  )
VALUES
  (50, 2, ?, 0)

sedangkan saat saya checked data yang pertama datanya masuk ke database. saya memesan data yang pertama dan ketiga masuk ke database. jadi saya harus masukan data yang pertama agar masuk ke database... kenapa seperti itu...

 if (!is_null($request->input('ID_Alat'))) {
            $list=[];
            foreach ($request->input('ID_Alat') as $key => $value) {
                array_push($list, ['ID_Alat' => $value]);
            }

            foreach ($request -> ID_Alat as $value) {

            }

            // dd($request -> jumlah_alat);
            for ($i=0; $i < count($request -> ID_Alat); $i++) {
                if($i < count($request -> ID_Alat)){
                    $alat = alat::find($request -> ID_Alat[$i]);
                    transaksialats::insert([
                        'ID_Transaksi' => $transaksiid,
                        'ID_Alat' => $request -> ID_Alat[$i],
                        'jumlah_alat' => $request -> jumlah_alat[$i],
                        'jumlah_harga_alat' => $alat->Harga_Alat*$request -> jumlah_alat[$i]
                    ]);

                }
               }
              }

itu controller saya.

 <tr>

                      <td><div class="container">
                      @foreach($alat as $a)
                      <div class="card" style="width: 18rem; float: left; margin: 25px;">
                      <div class="card-body">
                        <div class="form-check">
                                   <input class="form-check-input" type="checkbox" name="ID_Alat[]" value="{{$a->id}}" id="flexCheckChecked">
                                 </div>
                                 <img src="{{ asset('imagealat/'. $a->image ) }}"class="card-img-top" alt="...">

                       <center><div class="card-body">
                         <h5 class="card-title">{{ $a->Nama_Alat }}</h5><hr>
                                      <p class="card-text" >Rp. {{number_format( $a->Harga_Alat )}}</p>
                                       <p class="card-text"> STOK : {{ $a->Stok_Alat }}</p><hr>
                                       <input type="number" name="jumlah_alat[]" id="jumlah_alat" class="form-control form-icon-trailing" placeholder="Jumlah Alat" /></center>

                                      </div>
                       </div>
                       </div>
                       @endforeach
                     </div>
                      </td>

                        </tr>

itu view saya.

saya harus bagaimana ya?? tolong bantu sayaa....

avatar berlinashobirah
@berlinashobirah

3 Kontribusi 1 Poin

Diperbarui 1 tahun yang lalu

1 Jawaban:

<div>Kesalahan SQLSTATE[23000]: Integrity constraint violation: 1048 Column &#039;jumlah_alat&#039; cannot be null berarti kolom jumlah_alat pada tabel transaksialats tidak boleh bernilai null. Hal ini terjadi karena Anda telah mendefinisikan kolom tersebut sebagai NOT NULL pada skema database Anda.<br><br>Pada controller Anda, Anda sedang melakukan looping melalui array request -&amp;gt; ID_Alat dan memasukkan baris ke tabel transaksialats untuk setiap ID. Namun, Anda tidak memeriksa apakah kolom jumlah_alat kosong. Jika kolom tersebut kosong, maka akan muncul kesalahan yang Anda lihat.<br><br>Untuk memperbaikinya, Anda perlu menambahkan pengecekan apakah kolom jumlah_alat kosong sebelum memasukkan baris. Anda dapat melakukannya dengan menambahkan kode berikut ke dalam controller Anda:<br><br></div><pre>if (!empty($request -&gt; jumlah_alat[$i])) { $alat = alat::find($request -&gt; ID_Alat[$i]); transaksialats::insert([ 'ID_Transaksi' =&gt; $transaksiid, 'ID_Alat' =&gt; $request -&gt; ID_Alat[$i], 'jumlah_alat' =&gt; $request -&gt; jumlah_alat[$i], 'jumlah_harga_alat' =&gt; $alat-&gt;Harga_Alat*$request -&gt; jumlah_alat[$i] ]); }</pre><div><br><br>Kode ini akan memasukkan baris ke tabel transaksialats hanya jika kolom jumlah_alat tidak kosong.<br><br>Anda juga dapat memperbaiki masalah ini pada view Anda dengan menambahkan aturan validasi pada kolom input jumlah_alat. Anda dapat melakukannya dengan menambahkan kode berikut ke dalam view Anda:<br><br><br></div><pre>&lt;input type="number" name="jumlah_alat[]" id="jumlah_alat" class="form-control form-icon-trailing" placeholder="Jumlah Alat" required /&gt;</pre><div><br><br>Kode ini akan menambahkan aturan validasi yang wajib (required) pada kolom input jumlah_alat. Ini berarti pengguna harus memasukkan nilai untuk kolom tersebut sebelum mereka dapat mengirimkan formulir.<br><br>Setelah melakukan perubahan ini, Anda seharusnya tidak lagi mendapatkan kesalahan SQLSTATE[23000]: Integrity constraint violation: 1048 Column &#039;jumlah_alat&#039; cannot be null.</div>

avatar adamajalah27
@adamajalah27

119 Kontribusi 40 Poin

Dipost 1 tahun yang lalu

Login untuk ikut Jawaban