Laravel / Pemrograman Web Lanjut · July 27, 2022

Update Data dan Delete Pada Laravel #belajarlaravel-10

image_pdf

Untuk merubah data yang sudah tersimpan kedalam database, kita harus membuat route yang mengarahkan ke halaman edit. Sebelumnya arahkan tombol edit yang ada pada halaman /buku

<a href="/buku/{{ $b->id }}/edit"class="btn btn-warning">Edit</a>

Selanjutnya buat route yang mengarah ke halaman /buku/edit

Route::get('/buku/{id}/edit', [BukuController::class, 'edit']);

Selanjutnya kita akan menambah method baru pada BukuController

    public function edit($id)
    {
        $data = [
            'title' => "Edit Data Buku",
            'buku'  => Buku::find($id)
        ];
        return view('buku.edit')->with($data);
    }

Setelah itu buat halaman edit.blade.php untuk menampilkan data dari database

@extends('layouts.main')

@section('container')
<h1>Edit Data Buku</h1>

<div class="border p-3">
    <form action="/buku/{{ $buku->id }}" method="POST">
        @csrf
        <div class="mb-3">
            <label class="form-label">Judul Buku</label>
            <input type="text" class="form-control" name="judul" value="{{ $buku->judul }}">
        </div>
        <div class="mb-3">
            <label class="form-label">Nama Penulis</label>
            <input type="text" class="form-control" name="penulis" value="{{ $buku->penulis }}">
        </div>
        <div class="mb-3">
            <label class="form-label">Penerbit Buku</label>
            <input type="text" class="form-control" name="penerbit" value="{{ $buku->penerbit }}">
        </div>
        <div class="mb-3">
            <label class="form-label">Tahun Terbit</label>
            <input type="text" class="form-control" name="tahun_terbit" value="{{ $buku->tahun_terbit }}">
        </div>

        <a href="/buku" class="btn btn-warning">Kembali</a>
        <button type="submit" class="btn btn-info">Edit</button>
    </form>
</div>

@endsection

Maka hasilnya adalah sebagai berikut

Halaman edit data buku

Agar tombol edit bisa menjalankan perintah untuk merubah data maka buat methode update pada BukuController

    public function update($id, Request $request)
    {
        $buku = Buku::find($id);
        $buku->update($request->except(['_token', 'submit']));
        return redirect('/buku');
    }

Tambahkan juga sebuah route yang akan memproses method update pada web.php

Route::post('/buku/{id}', [BukuController::class, 'update']);

DELETE

Untuk menghapus data terlebih dahulu silahkan tambahkan route untuk menghapus data

Route::post('/buku/{id}', [BukuController::class, 'destroy']);

Setelah itu silahkan buat methode destroy pada controller buku

    public function destroy($id)
    {
        $buku = Buku::find($id);
        $buku->delete();
        return redirect('/buku');
    }

Kemudian pada halaman index.blade.php di folder buku, tambahkan tombol hapus

<div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">       
   <a href="/buku/{{ $b->id }}/edit"class="btn btn-warning me-2 mb-1">Edit</a> 
   <form action="/buku/{{ $b->id }}" method="POST">
      @csrf
      <input type="submit" class="btn btn-danger" value="Hapus">
   </form>
</div>