CRUD Laravel 11 – Update Data ke Database

CRUD Laravel 11 – Edit Data ke Database
CRUD Laravel 11 – Edit Data ke Database

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.

Berhasil mengarahkan ke form edit - Inovasicode.com
Berhasil mengarahkan ke form edit
Berhasil update data - Inovasicode.com
Berhasil update data
Form validasi bekerja - Inovasicode.com
Form validasi bekerja

 

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