Setelah kita membahas tentang bagaimana menambah data ke database di laravel kali ini kita coba membahas bagaimana merubah data tersebut. Tentu yang merubah adalah user nantinya. Laravel sendiri menyediakan function untuk melakukan update terdahadap data. Mari kita mulai membahasnya.
Bila anda mengikuti materi sebelum maka tentu anda akan memahami langkah-langkah di materi ini, sebab langkah ini merupakan lanjutan dari materi sebelumnya. Mari kita coba praktekkan saja. Silahkan buka kembali proyek yang telah kita buat pada materi sebelumnya.
Langkah Update Data
Buka kembali file tema.blade.php. Cari link Edit. Silahkan Edit link tersebut seperti berikut ini:
Anda perhatikan, link ini mirip dengan link tambah yang sudah kita buat sebelumnya. Beranya kita memberikan sebuah parameter diakhir dengan menggunakan id_tema sebagai parameternya. Jadi disini kita tidak akan membuat konsep route baru, tapi kita modivikasi route yang lama. Silahkan buka kembali web.php, Edit route ini:
Kita memberikan sebuah parameter pada route create dengan nama parameter {id}. Tanda kurung kurawal menyatakan id merupakan parameter. Selanjutnya kita modivikasi controllernya. Silahkan buka TemaController. Mari kita modivikasi fungsi create seperti ini:
Kita mengambil parameter id. Disini kita memberikan nialai awal pada id dengan nilai null. Ini berfungsi saat kita mengirim parameter tambah, maka parameter id tidak perlu dikirim, tapi saat kita kirim parameter edit maka parameter id akan diambil.
Sedangkan findOrFail() berguna untuk mengambil nilai primary_key (id_tema) dan mencocokkan dengan parameter id yang dikiri. kemudian data yang didapat diambil dalam bentuk objek (compact()).
Mari buka form_tema. Kita akan modif from tersebut:
@extends('templates.tem_main')@section('main')<div class="container mt-5"><h3 class="bg-info p-2">{{ $tema ? 'Edit Tema' : 'Tambah Tema Baru' }}</h3><form action="{{ $tema ? route('tema.update', $tema->id_tema) : route('tema.store') }}" method="POST">@csrf@if ($tema)@method('PUT')@endif<div class="form-floating mb-3"><input type="text" class="form-control" name="tema" placeholder="Nama Tema"value="{{ old('tema', $tema->tema ?? '') }}" required><label>Nama Tema</label></div><div class="form-floating mb-3"><textarea class="form-control" placeholder="Keterangan Tema" name="keterangan" style="height: 100px" required>{{ old('keterangan', $tema->keterangan ?? '') }}</textarea><label>Keterangan</label></div><button type="submit" class="btn btn-primary"><i class="bi bi-save-fill me-2"></i> Simpan</button><a href="{{ route('tema.index') }}" class="btn btn-secondary"><i class="bi bi-x-circle-fill me-2"></i> Batal</a></form></div>@endsection
Kita melakukan modif pada header. Ini memberikan logika temari yang menyatakan jika tema tidak null maka headir akan bernilai "Edit Tema" dan sebaliknya. Sedangkan pada form kita tambahkan route dengan logika temari juga. Untuk method kita berikan logika POST untuk simpan dan PUT untuk untuk update. Selanjutnya pada masing-masing form input kita tambahkan value='' agar saat data edit di klik maka form akan berisikan data.
Selanjutnya tambahkan Route seperti berikut ini:
Perhatikan pada route untuk update kita menggunakan put bukan post.
Oke, untuk update data mari kita buat fungsi update seperti berikut:
Selanjutnya silahkan jalankan proyek anda. Coba tambahkan data, dan lakukan edit terdapat data yang sudah ditambahkan tadi.
Jika anda berhasil maka anda dapat membuat latihan untuk update data kegiatan. Selamat mencoba.
