大家好,我需要帮助我正在使用模式更新数据功能,但它不工作它总是错误“Property [id]在此集合实例上不存在。”(Laravel 9 + bootstrap 5)
这是我的模态代码
'
<div class="modal fade" id="editlaptop{{$laptop->id}}" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Input data Laptop</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="form-row">
<form action="/asset/laptop/{{$laptop->id}}" method="POST" enctype="multipart/form-data">
@method('put')
@csrf
<div class="form-group">
<label>MERK</label>
<select class="form-select" name="merk" value="{{$laptop->merk}}">
<option>Acer</option>
<option>Lenovo</option>
<option>HP</option>
<option>Toshiba</option>
<option>Asus</option>
<option>Macbook/Apple</option>
</select>
</div>
<div class="form-group">
<label>TYPE</label>
<input type="text" class="form-control" name="type" value="{{$laptop->type}}">
</div>
<div class="form-group">
<label>WARNA</label>
<input type="text" class="form-control" name="warna" value="{{$laptop->warna}}">
</div>
<div class="form-group">
<label>PROCESSOR</label>
<input type="text" class="form-control" name="processor" value="{{$laptop->processor}}">
</div>
<div class="form-group">
<label>VGA</label>
<input type="text" class="form-control" name="vga" value="{{$laptop->vga}}">
</div>
<div class="form-group">
<label>RAM</label>
<input type="text" class="form-control" name="ram" value="{{$laptop->ram}}">
</div>
<div class="form-group">
<label>STORAGE</label>
<input type="text" class="form-control" name="storage" value="{{$laptop->storage}}">
</div>
<div class="form-group">
<label>WIFI ADAPTER</label>
<input type="text" class="form-control" name="wifi_adapter"
value="{{$laptop->wifi_adapter}}">
</div>
<div class="form-group">
<label>JENIS WINDOWS</label>
<input type="text" class="form-control" name="jenis_windows"
value="{{$laptop->jenis_windows}}">
</div>
<div class="form-group">
<label>LISENSI WINDOWS</label>
<input type="text" class="form-control" name="lisensi_windows"
value="{{$laptop->lisensi_windows}}">
</div>
<div class="form-group">
<label>ID PRODUCT WINDOWS</label>
<input type="text" class="form-control" name="id_product_windows"
value="{{$laptop->id_product_windows}}">
</div>
<div class="form-group">
<label>VERSI OFFICE</label>
<input type="text" class="form-control" name="versi_office"
value="{{$laptop->versi_office}}">
</div>
<div class="form-group">
<label>LISENSI OFFICE</label>
<input type="text" class="form-control" name="lisensi_office"
value="{{$laptop->lisensi_office}}">
</div>
<div class="form-group">
<label>ADMINISTRATOR PASWORD</label>
<input type="text" class="form-control" name="administrator_pasword"
value="{{$laptop->administrator_pasword}}">
</div>
<div class="form-group">
<label>NOTES</label>
<input type="text" class="form-control" name="notes" value="{{$laptop->notes}}">
</div>
<div class="form-group">
<label>KONDISI</label>
<input type="text" class="form-control" name="kondisi" value="{{$laptop->kondisi}}">
</div>
<div class="form-group">
<label>TAHUN PEMBELIAN</label>
<input type="text" class="form-control" name="tahun_pembelian"
value="{{$laptop->tahun_pembelian}}">
</div>
<div class="form-group">
<label>PEMEGANG</label>
<input type="text" class="form-control" name="pemegang" value="{{$laptop->merk}}">
</div>
<label for="image">Image</label>
<input type="file" name="filename" accept='image/jpeg , image/jpg, image/gif, image/png'
required>
</div>
</div>
</div>
<button class="btn btn-primary" name="submit" value="Save">Simpan</button>
</form>
</div>
</div>'
触发按钮
<button type="button" class="btn btn-success mt-1 btn-sm" data-bs-toggle="modal" data-bs-target="#editlaptop">edit</button>
控制器:
public function edit($id)
{
// dd($id);
$laptop = Laptop::find($id);
// dd($laptop);
return view('/asset/laptop/edit',['laptop' => $laptop]);
}
public function update ($id, Request $request)
{
$this->validate($request, [
'filename' => 'required',
'filename.*' => 'required|mimes:png,jpg,jpeg|max:2048'
]);
//check if image is uploaded
// Pakai fungsi findOrFail bawaan laravel
// Jadi query nya itubakalan nyari ke table Laptop berdasarkan $id
// Kalau ga ada data yang ditemukan nanti otomatis response nya 404 ke front end
$laptop = Laptop::findOrFail($id);
if ($laptop) {
if ($request->hasfile('filename')) {
if (! empty($laptop->data_file) && Storage::exists('public/images/laptop/' . $laptop->data_file)) {
Storage::delete('public/images/laptop/' . $laptop->data_file);
}
$filename = round(microtime(true) * 1000).'-'.str_replace(' ','-',$request->file('filename')->getClientOriginalName());
$request->file('filename')->move(storage_path('/app/public/images/laptop'), $filename);
}
$laptop->update([
'merk' => $request->input('merk'),
'type' => $request->input('type'),
'warna' => $request->input('warna'),
'processor' => $request->input('processor'),
'vga' => $request->input('vga'),
'ram' => $request->input('ram'),
'storage' => $request->input('storage'),
'wifi_adapter' => $request->input('wifi_adapter'),
'id_product_windows' => $request->input('id_product_windows'),
'versi_office' => $request->input('versi_office'),
'jenis_windows' => $request->input('jenis_windows'),
'lisensi_office' => $request->input('lisensi_office'),
'lisensi_windows' => $request->input('lisensi_windows'),
'administrator_pasword' => $request->input('administrator_pasword'),
'notes' => $request->input('notes'),
'kondisi' => $request->input('kondisi'),
'tahun_pembelian' => $request->input('tahun_pembelian'),
'pemegang' => $request->input('pemegang'),
'data_file' => $filename,
]);
}
return redirect('/asset/laptop/laptop');
}
希望有人能帮忙给出解决方案:D
希望有人能给出解决方案,我会知道错的