Menghapus Data Contact
Bagian terakhir dari CRUD yaitu Delete akan kita buat pada tulisan ini, pertama ubah pada file index.blade.php
pada bagian edit
jadi seperti di bawah ini.
<td class="border p-2"> <a href="{{ route('contacts.edit', $contact) }}" class="text-indigo-700 hover:text-gray-600">Edit</a> <form action="{{ route('contacts.destroy', $contact) }}" method="POST"> @csrf @method('DELETE') <input type="submit" value="Delete" class="bg-red-500 text-white p-3"> </form> </td>
Sedikit pembahasan kenapa pada bagian hapus ini kita menggunakan method POST
dan menggunakan method('DELETE')
dan tidak langsung menggunakan GET
saja ? salah satu alasannya adalah untuk keamanan. Dimana jika kita gunakan GET
maka ini akan rentan dengan serangan CSRF, maka baiknya menggunakan cara seperti yang diterapkan dengan method DELETE
dimana membutuhkan sebuah token yang unik untuk melakukan tindakan tersebut, token yang digenerate oleh @csrf
yang hanya dibuat ketika diakses dari halaman web kita sendiri, jadi jika ada tindakan dari luar web kita akan gagal karena tidak memiliki token yang sesuai.
Belibet ya? saya juga bingung pas nulis wkwk, lebih enaknya coba cari tahu tentang "Apa itu serangan CSRF", supaya lebih paham cara kerjanya.
Mari kita lanjutkan untuk membuat fungsinya di ContactController
pada method destroy()
public function destroy(string $id) { $contact = Contact::find($id); // mencari data kontak berdasarkan id $contact->delete(); // menghapus data kontak sesuai data yang ditemukan tadi return redirect()->back(); // redirect ke halaman sebelumnya }
Sekarang mari kita coba hapus salah satu data yang kita punya, contoh pada data saya, saya akan hapus data adams.
Dan sudah berhasil, data adams hilang dari daftar kontak yang saya miliki.