【发布时间】:2021-11-08 17:12:52
【问题描述】:
单击提交按钮编辑数据时出现错误。 我的错误:
"SQLSTATE[42S22]: 找不到列: 1054 'where 子句'中的未知列 '5' (SQL: select * from
userswhere (5is null androle= siswa andname=汤姆和email_verified_at= 2021年9月13日11时35分17秒和password= $ 2Y $ 10 $ O5iNeRK0MM4PsRSW27KeMezkVYMZqgfJOXJW35zuh3Ve5lDi7buf2和remember_token= PGLP0c51ArZHLHRzpGM8NYSlRofQ6umTq4rFaRGRr0ZnD7MtP7gmtBTdL7tX)极限1)“
我的控制器
public function store(Request $request)
{
$user = User::updateOrCreate([
[
'id' => $request->id,
],
'role' => 'siswa',
'name' => $request->nama_depan,
'email' => $request->email,
'email_verified_at' => now(),
'password' => bcrypt('rahasia'),
'remember_token' => Str::random(60),
]);
$siswa = Siswa::updateOrCreate(['user_id'=>$user->id, 'id'=>$request->id],
[
'nama_depan' => $request->nama_depan,
'nama_belakang' => $request->nama_belakang,
'jenis_kelamin' => $request->jenis_kelamin,
'agama' => $request->agama,
'alamat' => $request->alamat,
'avatar' => $request->avatar,
]);
if($request->hasfile('avatar')) {
$request->file('avatar')->move('images/', $request->file('avatar')->getClientOriginalName());
$siswa->avatar = $request->file('avatar')->getClientOriginalName();
$siswa->save();
}
return json_encode(array(
"statusCode"=>200
));
}
public function edit($id, Request $request)
{
$this->validate($request, [
'avatar' => 'mimes:jpg,png'
]);
// $where = array('users.id' => $id);
$siswa = Siswa::select(
"siswa.id",
"siswa.nama_depan",
"siswa.nama_belakang",
"siswa.jenis_kelamin",
"users.email as email",
"siswa.agama",
"siswa.alamat"
)
->join('users', 'users.id', '=', 'siswa.user_id')
->where('siswa.id', $id)
->first();
if($request->hasfile('avatar')) {
$request->file('avatar')->move('images/', $request->file('avatar')->getClientOriginalName());
$siswa->avatar = $request->file('avatar')->getClientOriginalName();
$siswa->update();
}
return response()->json($siswa);
}
我的模特
public function user()
{
return $this->belongsTo(User::class);
}
public function siswa()
{
return $this->hasOne(Siswa::class);
}
jQuery 代码
// /TOMBOL EDIT DATA PER PEGAWAI DAN TAMPIKAN DATA BERDASARKAN ID PEGAWAI KE MODAL
//ketika class edit-post yang ada pada tag body di klik maka
$('body').on('click', '.edit-siswa', function () {
var data_id = $(this).data('id');
$.get('siswa/' + data_id + '/edit', function (data) {
console.log(data);
$('#modal-judul').html("Edit Siswa");
$('#btn-simpan').val("edit-siswa");
$('#tambahModal').modal('show');
//set value masing-masing id berdasarkan data yg diperoleh dari ajax get request diatas
$('#id').val(data.id);
$('#user_id').val(data.user_id);
$('#nama_depan').val(data.nama_depan);
$('#nama_belakang').val(data.nama_belakang);
$('#jenis_kelamin').val(data.jenis_kelamin);
$('#email').val(data.email);
$('#agama').val(data.agama);
$('#alamat').val(data.alamat);
})
});
//SIMPAN & UPDATE DATA DAN VALIDASI (SISI CLIENT)
//jika id = formSiswa panjangnya lebih dari 0 atau bisa dibilang terdapat data dalam form tersebut maka
//jalankan jquery validator terhadap setiap inputan dll dan eksekusi script ajax untuk simpan data
if ($("#formSiswa").length > 0) {
$("#formSiswa").validate({
submitHandler: function (form) {
var actionType = $('#btn-simpan').val();
$('#btn-simpan').html('Sending..');
$.ajax({
data: $('#formSiswa')
.serialize(), //function yang dipakai agar value pada form-control seperti input, textarea, select dll dapat digunakan pada URL query string ketika melakukan ajax request
url: "{{ route('siswa.store') }}", //url simpan data
type: "POST", //karena simpan kita pakai method POST
dataType: 'json', //data tipe kita kirim berupa JSON
success: function (data) { //jika berhasil
$('#formSiswa').trigger("reset"); //form reset
$('#tambahModal').modal('hide'); //modal hide
$('#btn-simpan').html('Simpan'); //tombol simpan
var oTable = $('#table-siswa').dataTable(); //inialisasi datatable
oTable.fnDraw(false); //reset datatable
toastr.success({ //tampilkan iziToast dengan notif data berhasil disimpan pada posisi kanan bawah
title: 'Data Berhasil Disimpan',
message: '{{ Session('
success ')}}',
position: 'bottomRight'
});
},
error: function (data) { //jika error tampilkan error pada console
console.log('Error:', data);
$('#btn-simpan').html('Simpan');
}
});
}
})
}
【问题讨论】:
-
你在 updateOrCreate 中添加了额外的 [
$user
标签: php jquery laravel laravel-8