CRUD Laravel 11 – Udpate Data ke Database – Operasi Update atau edit data adalah salah satu bagian penting dalam pengelolaan database pada aplikasi berbasis web. Di Laravel 11, kita dapat dengan mudah mengimplementasikan fitur ini menggunakan Eloquent ORM, di mana kita bisa memodifikasi data yang sudah ada di database melalui form input dan menyimpannya kembali.
Dalam artikel ini, kita akan membahas langkah-langkah untuk melakukan operasi Update data pada Laravel 11, mulai dari menampilkan form edit dengan data yang ada, memproses form input, hingga menyimpan perubahan ke database.
Update Data ke Database
1. Menambahkan Buttton Edit
Pertama, anda perlu membuat button edit untuk mengarahkan ke form edit sesuai id data yang dipilih. Pada umumnya, form edit terdapat pada tabel index.php, kemudian saat diklik maka akan diarahkan ke form edit beserta data sesuai id pada button. Untuk membuatnya tambahkan menjadi seperti ini :
<table class="table" border="1"> <thead> <tr> <th>ID</th> <th>Judul</th> <th>Konten</th> <th>Tanggal Dibuat</th> <th>Opsi</th> </tr> </thead> <tbody> @foreach ($posts as $post) <tr> <td>{{ $post->id }}</td> <td>{{ $post->title }}</td> <td>{{ $post->content }}</td> <td>{{ $post->created_at }}</td> <td> <a href="/posts/{{ $post->id }}/edit" class="btn btn-warning">Edit</a> </td> </tr> @endforeach </tbody> </table>
2. Membuat View Form Edit di View
Langkah berikutnya adalah menampilkan form yang sudah terisi dengan data dari database untuk diedit. Buat file edit.blade.php
di dalam folder resources/views/posts/
:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Update Post</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> </head> <body> <div class="container"> <h1>Update Post</h1> <!-- Menampilkan error validasi --> @if ($errors->any()) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <!-- Menampilkan alert sukses --> @if (session('success')) <div class="alert alert-success"> <strong>{{ session('success') }}</strong> </div> @endif <!-- Form untuk mengirim data post --> <form action="/posts/{{ $post->id }}" method="POST"> @method('put') @csrf <div class="form-group"> <label for="title">Judul:</label> <input type="text" id="title" class="form-control" name="title" value="{{ old('title', $post->title) }}"> </div> <div class="form-group"> <label for="content">Konten:</label> <textarea id="content" class="form-control" name="content">{{ old('content', $post->content) }}</textarea> </div> <button type="submit" class="btn btn-primary mt-3">Update</button> </form> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"> </script> </div> </body> </html>
3. Membuat Method Edit dan Update
Setelah membuat form, kita perlu menambahkan logika di controller untuk menampilkan data yang akan diedit dan menyimpan perubahan data tersebut. Di file PostController.php.
tambahkan dua metode berikut :
<?php namespace App\Http\Controllers; use App\Models\Post; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class PostController extends Controller { /** * Show the form for editing the specified resource. */ public function edit($id) { // Mengambil data post berdasarkan ID $post = Post::findOrFail($id); // Menampilkan view edit dengan data post return view('posts.edit', compact('post')); } /** * Update the specified resource in storage. */ public function update(Request $request, $id) { // Validasi input dari form $request->validate([ 'title' => 'required|max:255', 'content' => 'required', ]); // Mengambil data post berdasarkan ID $post = Post::findOrFail($id); // Meng-update data post $post->update([ 'title' => $request->input('title'), 'content' => $request->input('content'), ]); // Redirect ke halaman yang diinginkan setelah update data return redirect('/posts')->with('success', 'Post berhasil diperbarui!'); } }
4. Uji Coba Update Data ke Database
Setelah semua dibuat, sekarang kita akan melakukan uji coba mulai dari button edit apakah sudah sesuai menampilkan data di form edit ? Dan apakah proses update sudah sesuai atau belum.



Kesimpulan
Meng-update data di database menggunakan Laravel 11 sangat mudah dengan bantuan Eloquent ORM. Dengan mengikuti langkah-langkah di atas, Anda dapat menampilkan data yang akan diubah di form edit, memvalidasi input, dan menyimpan perubahan ke database dengan efisien. Artikel ini memberikan pemahaman lengkap untuk menangani operasi Update dalam prinsip CRUD di Laravel. Lanjutkan dengan mempelajari bagaimana cara menghapus data dari database di artikel berikutnya.
Part Selanjutnya

Meninggalkan jejak di internet dengan menulis artikel
Leave a Reply