
CRUD Laravel 9 #4: Edit & Update Data dari Database
CRUD Laravel 9 - Setelah berhasil membuat fitur insert atau tambah data ke database di laravel 9, pada artikel ini saya akan membagikan bagaimana cara melakukan edit atau update data dari database di laravel 9. Pada artikel ini, mungkin saya tidak akan terlalu banyak menjelaskan karena memang untuk edit atau update data di laravel 9 ini cukup simple.
Baiklah, mari kita langsung saja ke koding. 🚀 👨💻
Step 1: Setup Layout
index.blade.php
<td>
{{-- TBA --}}
</td>
Langkah pertama yang harus dilakukan adalah membuat edit button. Silahkan buka file index.blade.php, kemudian cari kode seperti di atas dan ganti dengan kode seperti di bawah ini.
<td>
<a href="{{ route('posts.edit',$post->id) }}" class="btn btn-success">Edit</a>
</td>
Edit button tersebut akan diarahkan ke route posts.edit dengan parameter id dari post tersebut.
edit.blade.php
@extends('layouts.app')
@section('content')
<form action="{{ route('posts.update',$post->id) }}" method="post" enctype="multipart/form-data">
@method('PUT')
@csrf
@include('posts.form')
</form>
@endsection
Kemudian, buat file view baru dengan nama edit.blade.php dan tentunya di dalam direktori resources/views/posts. Masih sama seperti file di create.blade.php, pada file edit.blade.php ini kita juga masih tetap menggunakan component dari form.blade.php.
Step 2: Setup Controller
public function edit(Post $post)
{
return view('posts.edit',[
'label' => 'Update',
'post' => $post
]);
}
public function update(PostRequest $request, Post $post)
{
$cover = $request->file('cover');
if ($cover) {
\Storage::delete('public/'.$post->cover);
$fileName = time().'_'.$cover->getClientOriginalName();
$cover = $cover->storeAs('images/posts', $fileName, 'public');
} else {
$cover = $post->cover;
}
$post->update([
'cover' => $cover,
'title' => str($request->title)->title(),
'slug' => str($request->title)->slug(),
'content' => $request->content,
]);
return to_route('posts.index')->with('success','Post updated successfully');
}
Lanjut ke PostController.php, disini kita akan bekerja di method edit dan update. Pada method edit, kita akan mengarahkannya ke file view posts/edit.blade.php dengan variabel label dan post.
Kemudian pada method update(), kita masih menggunakan PostRequest untuk melakukan pekerjaan validasi data, jangan lupa untuk mengimport PostRequest pada PostController.php. Pada method update() ini sebenarnya hampir sama dengan method store() yang telah kita buat pada artikel sebelumnya. Hanya saja yang membedakan, disini kita menggunakan logic saat edit cover. Jika terdapat request cover, maka file cover lama yang ada di storage akan dihapus dan akan digantikan dengan file cover yang baru. Tapi, jika tidak ada request cover, maka value yang tersimpan merupakan value cover yang lama.
Step 3: Testing
Seperti yang saya katakan diawal, pada artikel ini saya tidak akan menulis atau menjelaskan terlalu banyak karena memang cukup simple. Setelah melakukan langkah-langkah mulai dari menambah edit button dan setup method edit dan update pada PostController.php, dan sekarang merupakan waktunya pengujian. Silahkan jalan laravel project kamu, buka pada browser dan cobalah untuk melakukan edit salah satu data beserta covernya. Setelah berhasil tersimpan, cobalah lihat di direktori storage/app/public/images/posts, maka file cover yang lama akan terhapus dan digantikan dengan file yang baru.
Cukup sekian artikel kali ini, semoga apa yang saya tulis ini dapat mudah dipahami dan bisa membantu. Pada artikel selanjutnya, saya akan membagikan bagaimana cara delete data dan implementasi confirm dialog menggunakan sweetalert2. Sampai jumpa di artikel berikutnya. 🚀 👋
- Tutorial CRUD (Create, Read, Update and Delete) Laravel 9
- CRUD Laravel 9 #2: Set up Layout dan Menampilkan Data dari Database
- CRUD Laravel 9 #3: Insert Data ke Database dan Implementasi Form Request Validation
- CRUD Laravel 9 #4: Edit & Update Data dari Database
- CRUD Laravel 9 #5: Delete Data dari Database & Implementasi Sweetalert2
- CRUD Laravel 9 #6: Implementasi Softdelete
- CRUD Laravel 9 #7: Membuat Fitur Pencarian dengan Laravel Scout Database Driver
Last updated on July 17, 2025