CRUD Laravel 10 dan Bootstrap 5 #4: Mengupdate Data

crud-laravel-10-dan-bootstrap-5-#4:-mengupdate-data

Hai, Sobat Risereaders!

Pada artikel sebelumnya, kita telah mempelajari proses menambahkan data baru ke dalam aplikasi kita. Dan juga, cara menyimpan gambar ketika melakukan penambahan data di Laravel.

Sekarang, kita akan melanjutkan pembuatan aplikasi CRUD Laravel dan Bootstrap, yaitu pada tahap mengupdate data aplikasi kita.

Cara Mengupdate Data Aplikasi CRUD

Langkah-langkah cara mengupdate data CRUD yang sudah ada di dalam database:

  1. Membuat Method Edit dan Update

Langkah pertama dalam proses mengupdate data adalah dengan membuat method edit dan update di dalam controller BookController.

Method edit akan bertanggung jawab menampilkan form untuk mengedit data, sementara method update akan digunakan untuk memperbarui data di database.

// app/Http/Controllers/BookController.php

public function edit(Book $book)
{
    // Menampilkan halaman form edit data
    return view('books.edit', compact('book'));
}

public function update(Request $request, Book $book)
{
    // Validasi data input
    $validatedData = $request->validate([
        'cover' => 'nullable|image|mimes:jpg,png,jpeg,gif|max:2048',
        'title' => 'required|string|max:255',
        'description' => 'required|string',
    ]);

    // Jika mengunggah gambar cover baru
    if ($request->hasFile('cover')) {
        // Hapus gambar cover lama
        Storage::delete("public/books/$book->cover");

        // Upload gambar cover baru
        $cover = $request->file('cover');
        $cover->storeAs('public/books', $cover->hashName());

        // Simpan nama file gambar cover baru ke database
        $validatedData['cover'] = $cover->hashName();
    }

    // Update data di database
    $book->update($validatedData);

    // Mengalihkan halaman ke index dengan pesan sukses
    return redirect()->route('books.index')->with('success', 'Data buku berhasil diperbarui!');
}

Dalam method edit, kita menggunakan route model binding untuk langsung mengambil data buku yang akan diedit dari database.

Sedangkan dalam method update, kita melakukan validasi terhadap data input yang diterima sebelum memperbarui data di database.

Ketika kita melakukan update data, jika ada gambar cover baru yang ditambahkan, maka akan menghapus gambar cover yang lama menggunakan Storage::delete. Jangan lupa untuk mengimport Storage.

use IlluminateSupportFacadesStorage;

2. Membuat View Edit Data

Setelah membuat method di controller, langkah berikutnya adalah membuat tampilan untuk form edit data.

Buatlah file edit.blade.php di dalam folder resources/views/books/ dan tambahkan kode berikut:




@extends('layouts.app')


@section('title', 'Edit Buku')

@section('content')
     class="row justify-content-center">
         class="col-md-8">
            
            

@yield('title')

class="card mt-3"> class="card-body"> action="{{ route('books.update', $book->id) }}" method="POST" enctype="multipart/form-data"> @csrf @method('PUT') class="row justify-content-center"> class="col-6 col-sm-4 mb-3 order-sm-last"> src="{{ asset('storage/books/' . $book->cover) }}" alt="" class="img-fluid border rounded">
class="col-sm-8"> class="mb-3"> class="form-label" for="cover">Cover type="file" class="form-control @error('cover') is-invalid @enderror" id="cover" name="cover"> @error('cover') class="invalid-feedback">{{ $message }}
@enderror
class="mb-3"> class="form-label" for="title">Judul type="text" class="form-control @error('title') is-invalid @enderror" id="title" name="title" value="{{ old('title', $book->title) }}"> @error('title') class="invalid-feedback">{{ $message }}
@enderror
class="mb-3"> class="form-label" for="description">Deskripsi class="form-control @error('description') is-invalid @enderror" id="description" name="description" rows="3">{{ old('description', $book->description) }} @error('description') class="invalid-feedback">{{ $message }}
@enderror
href="{{ route('books.index') }}" class="btn btn-outline-primary me-2">Kembali type="submit" class="btn btn-primary">Simpan
@endsection

Dalam tampilan ini, kita menggunakan layout layouts.app yang sudah kita buat pada tahap persiapan awal aplikasi CRUD.

Form ini diproteksi dengan CSRF token dan method PUT, sesuai dengan standar RESTful untuk proses update data.

3. Menjalankan Aplikasi

Terakhir, mari kita uji coba aksi update data yang telah kita tambahkan. Jalankan aplikasi Laravel terlebih dahulu:

php artisan serve

Buka browser kamu, dan kunjungi http://localhost:8000/books. Setelah itu, cari data buku yang ingin kamu ubah datanya.

Tampilan halaman books.edit

Penutup

Dalam artikel ini, kita telah mempelajari langkah-langkah untuk mengupdate data di dalam aplikasi CRUD kita. Belajar cara membuat method edit dan update, serta membuat halaman books.edit untuk menampilkan form edit data.

Pada artikel berikutnya dan juga terakhir, kita akan mempelajari cara menghapus data dari aplikasi CRUD kita. Jadi, tetap semangat belajar dan jangan lewatkan artikel selanjutnya!

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
netlify-dynamic-site-challenge-–-help-thread!

Netlify Dynamic Site Challenge – Help Thread!

Next Post
idm-vton:-the-most-amazing-virtual-try-anything-on-application-–-windows,-massed-compute,-runpod-&-kaggle

IDM-VTON: The Most Amazing Virtual Try Anything On Application – Windows, Massed Compute, RunPod & Kaggle

Related Posts