Menghapus Data Contact

Sabtu, 20 Mei 2023
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.

hapus-data

Dan sudah berhasil, data adams hilang dari daftar kontak yang saya miliki.

hapus-data

Belum ada komentar di sini