Edit & Delete Data pada Laravel Framework -16

Assalamualaikum WR.WB

  
     Hai! kembali lagi ke blog saya,pada postingan kali ini saya akan memberikan materi Laravel yaitu tentang  Edit & Delete Data With DB Facade. Setelah membahas Read dan Create data pada postingan sebelumnya, sekarang mari kita membahas sisa 2 point dari CRUD yaitu Update(Edit) dan Delete data. Untuk lebih jelasnya, berikut penjelasannya :
Untuk menambahkan Edit & Delete langkah pertama yang harus dilakukan yaitu membuat 3 route baru.




Setelah mempersiapkan 3 Route terbaru tersebut, sekarang kita akan mempelajari bagaimana cara untuk mengedit dan delete sebuah data dalam form yang telah kita buat sebelumnya.


Studi Kasus 1 (Menjelaskan Fungsi Update & Destroy)

Langkah selanjutnya adalah dengan membuat function edit dalam file Controller yang telah kita buat sebelumnya. Function edit yang akan digunakan adalah sebagai berikut :

public function edit(Request $request, $id)
{
$data['siswa'] = \DB::table('t_siswa')->find($id);
return view('siswa.form', $data);
}

Dari codingan diatas, kita dapat mengetahui bahwa pertama-tama kita akan mengambil data yang telah kita pilih pada sebuah form edit, kemudian kita akan mencocokan data yang kita ambil dengan database dengan menggunakan \DB::table('t_siswa')->find($id); setelah itu kita akan dihubungkan dengan form create sebelumnya. Function edit ini hanyalah mengambil data yang akan kita edit saja, untuk mengubah datanya kita akan memasuki langkah selanjutnya.

Selanjutnya, untuk mengubah data yang telah kita pilih, kita harus membuat function update terlebih dahulu. Function update nya adalah sebagai berikut :

public function update(Request $request, $id)
{
$rule = [
'nis'=>'required|numeric',
'nama_lengkap'=>'required|string',
'jenkel'=>'required',
'goldar'=>'required',
];
$this->validate($request, $rule);
$input = $request->all();
unset($input['_token']);
unset($input['_method']);
$status = \DB::table('t_siswa')->where('id', $id)->update($input);
if ($status) {
return redirect('/siswa')->with('success', 'Data Berhasil Diubah');
} else {
return redirect('/siswa/create')->with('error', 'Data Berhasil Diubah');
}
}

Tak jauh berbeda dengan function store, didalam function ini kondisi where digunakan untuk menentukan data mana yang akan diedit, kemudian setelah kondisi yang lainnya terpenuhi maka akan kembali ke tampilan form awal, apabila gagal maka akan muncul error message.

public function destroy(Request $request, $id)
{
$status = \DB::table('t_siswa')->where('id', $id)->delete();
if ($status) {
return redirect('/siswa')->with('success', 'Data berhasil dihapus');
} else {
return redirect('/siswa/create')->with('error', 'Data gagal dihapus');
}
}

Selanjutnya kita akan mulai membahas mengenai function destroy. Dari namanya saja kita dapat menggambarkan bahwa function ini akan digunakan untuk menghancurkan / menghapus sebuah data yang telah dipilih oleh user. Dapat kita ketahui dalam codingan diatas, bahwa setelah perintah where dijalankan maka data yang dipilih akan dihapus menggunakan method delete().

Tentu saja setelah kita membuat route dan beberapa function yang akan digunakan untuk edit dan delete, kita juga harus membuat button yang akan digunakan untuk menjalankan kedua function tersebut.

<th colspan = "2" width = "auto"><center>Aksi</center><th>
<td>
<a class = "btn btn-success" href = "{{ url('/siswa/' . $row->id . '/edit') }}">Edit</a>
</td>
<td>
<form action = "{{ url('/siswa', $row->id) }}" method = "POST">
@method('DELETE')
@csrf
<button class = "btn btn-danger" type = "submit">Delete</button></td>

Setelah kita menambahkan codingan tersebut pada form utama yang telah kita buat. Dapat diketahui dalam codingan {{ url('/siswa/' . $row->id . '/edit') }} bertujuan untuk menghubungkan form utama dengan $row-> id yang dipilih oleh user kemudian akan menuju ke dalam form editSehingga membentuk url seperti ini setelah ktia menekan button tersebut :

http://localhost/laravel5.7-fresh/public/siswa/1/edit

Nah url diatas adalah contoh ketika kita menekan button edit pada baris pertama. Begitu pula dengan button untuk delete, hanya saja dalam button delete system akan langsung menghapus kolom yang kita pilih dengan menggunakan :

<form action = "{{ url('/siswa', $row->id) }}" method = "POST">
@method('DELETE')
@csrf

Studi Kasus 2 (Menerapkan Edit & Delete pada Table Kelas)

Bagaimanakah hasilnya setelah kita menerapkan codingan diatas kedalam suatu form dan table yang telah kita buat?

- Edit Data Step 1 (Before)


- Edit Data Step 2 (Editing)


- Edit Data Step 3 (After)

Pada Step 2, dapat kita lihat bahwa function dari old input telah berfungsi dengan baik karena pada saat kita menekan button edit, old input membuat isi dari data sebelumnya mengisi form tersebut dengan sendirian. Begitu Pula Dengan Delete.

- Delete Step 1 (Before)


- Delete Step 2 (After)



Mungkin cukup sekian postingan kali ini semoga postingan ini menjadi manfaat untuk kita semua.Mohon maaf apabila ada kesalahan dan kekurangan,Sampai ketemu di postingan selanjutnya.

Salam Coding!

Komentar

Postingan populer dari blog ini

Laravel : Create Data, Validation, dan Old Input

Belajar PHP (Nested Looping) -Praktikum 24

Program Menentukan Hari Menggunakan If Dan Switch Case dan