Postingan lainnya
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....
1 Jawaban:
<div>Kesalahan SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'jumlah_alat' 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 -&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 -> jumlah_alat[$i])) {
$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]
]);
}</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><input type="number" name="jumlah_alat[]" id="jumlah_alat" class="form-control form-icon-trailing" placeholder="Jumlah Alat" required /></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 'jumlah_alat' cannot be null
.</div>