MODUL MEMBUAT PROGRAM DENGAN LARAVEL 10 Part 6 – EDIT DAN UPDATE DATA KE DATABASE
MODUL MEMBUAT PROGRAM DENGAN LARAVEL 10 Part 6 –
EDIT DAN UPDATE DATA KE DATABASE
Di modul ini adalah menguapdate data yang ada di database dengan menggunakan/memanggil berdasarkan id, untuk membuat kode update kita harus membuat dua method yaitu :
Function edit – method ini digunakan untuk menampilkan halaman form edit data
Function update – method ini digunakan untuk memproses data yang akan diupdate ke dalam database
Untuk itu silahkan buka file app/Http/Controller/BeritaController.php kemudian
tambah kode berikut ini di bawah method show
seperti berikut ini :
1. Tambah
//import Facade "Storage"
use
Illuminate\Support\Facades\Storage;
2. Method edit di taruh dibawah
nya method show
public function edit(string $id): View
{
//get post
by ID
$berita =
Berita::findOrFail($id);
//render
view with post
return
view('beritas.edit', compact('berita'));
}
3. Method update di taruh
dibawah nya method edit
public function
update(Request $request, $id): RedirectResponse
{
//validate form
$this->validate($request, [
'gambar' => 'image|mimes:jpeg,jpg,png|max:2048',
'judul' => 'required|min:5',
'isi' => 'required|min:10'
]);
//get post by ID
$berita = Berita::findOrFail($id);
//check if image is uploaded
if ($request->hasFile('gambar')) {
//upload new image
$gambar = $request->file('gambar');
$gambar->storeAs('public/beritas', $gambar->hashName());
//delete old image
Storage::delete('public/beritas/'.$berita->gambar);
//update post with new image
$berita->update([
'gambar' => $gambar->hashName(),
'judul' => $request->judul,
'isi' => $request->isi
]);
} else {
//update post without image
$berita->update([
'judul' => $request->judul,
'isi' => $request->isi
]);
}
//redirect to index
return
redirect()->route('beritas.index')->with(['success' => 'Data Berhasil
Diubah!']);
}
4. Setelah menambahkan method di
atas, langkah selanjutnya adalah membuat file edit.blade.php di folder resources/views/beritas
dan kodingnya sperti berikut ini
<!DOCTYPE html>
<html lang="en">
<head>
<title>Data Beritas - RPL</title>
<link rel="stylesheet" href="http://localhost/bootstrap/bootstrap.min.css">
</head>
<body style="background:
lightgray">
<div class="container mt-5 mb-5">
<div class="row">
<div class="col-md-12">
<div class="card border-0
shadow-sm rounded">
<div class="card-body">
<form action="{{ route('beritas.update', $berita->id)
}}" method="POST" enctype="multipart/form-data">
@csrf
@method('PUT')
<div class="form-group">
<label class="font-weight-bold">GAMBAR</label>
<input type="file" class="form-control" name="gambar">
</div>
<div class="form-group">
<label class="font-weight-bold">JUDUL</label>
<input type="text" class="form-control
@error('judul') is-invalid @enderror" name="judul" value="{{ old('judul', $berita->judul) }}" placeholder="Masukkan
Judul Post">
<!-- error message untuk title -->
@error('judul')
<div class="alert
alert-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label class="font-weight-bold">KONTEN</label>
<textarea class="form-control
@error('isi') is-invalid @enderror" name="isi" rows="5" placeholder="Masukkan Konten berita">{{ old('isi',
$berita->isi) }}</textarea>
<!-- error message untuk content -->
@error('isi')
<div class="alert
alert-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<button type="submit" class="btn btn-md
btn-primary">UPDATE</button>
<button type="reset" class="btn btn-md
btn-warning">RESET</button>
</form>
</div>
</div>
</div>
</div>
</div>
<script src="http://localhost/bootstrap/jquery.min.js"></script>
<script src="http://localhost/bootstrap/bootstrap.min.js"></script>
<script src="https://cdn.ckeditor.com/4.13.1/standard/ckeditor.js"></script>
<script>
CKEDITOR.replace( 'isi' );
</script>
</body>
</html>
5. Setelah membuat file edit.blade.php adalah melakukan ujia
coba, jika di klik Edit maka akan ditampikan seperti berikut ini