Tutorial Simple CRUD - Edit - Dunia Laravel
Dalam artikel sebelumnya kita udah coba buat createdata sama read data. Artikel ini merupakan lanjutan dari artikel sebelumnya, jadi kalo bingung baca dulu yak…
Sekarang waktunya update data atau edit data.
Table of Contents
- Things That Need to be Prepared
- Update Data
Things That Need to be Prepared
Sama kaya artikel Create, disini persiapan yang
diperlukan kebanyakan udah di lakuin di artikel sebelumnya yaitu artikel read.
Jadi khusus untuk edit data hal yang kita perlukan adalah server yang aktif dan
data yang akan di edit.
Update Data
Kurang lebih update data itu sama kaya
Create data. Kita perlu view yang berisi form input data trus nanti kita arahin
datanya ke controller. Oh ya, route yang kita pake kali ini yaitu home/{home}/edit yang memiliki
method get() dan home/{home} yang memiliki
method put().
Kalian mungkin ada yang sedikit bingung
buat alamatnya. Kenapa ada {home}?
Apa itu? Jadi {home}
adalah symbol yang menandakan bahwa itu nanti akan diisi oleh variable yang
digunakan sebagai parameter di fungsi controller. Fungsi controller yang
dimaksud di sini adalah edit($id)
dan update($id).
Reminder, kalo kalian mau liat route
secara keseluruhan bisa ketik perintah artisan
php artisan route:list
Lanjut gan, kita buat view dulu buat
form nya.
Bisa kalian perhatikan, form nya kurang
lebih sama kaya form input data. Berbeda hanya dibagian tag <form> yang
mendefinisikan tujuan data dan method nya, sama attribute value pada setiap tag
<input> yang berfungsi
menampilkan nilai sebelumnya atau yang udah terinput di database.
Perlu diingat, di sini method yang kita
pake itu PUT/PATCH, jadi kita akan pake @method('patch') buat kasih tahu laravel bahwa
methodnya kita ganti pake ini.
Sekarang kita isi fungsi edit() yang ada
dicontroller. Kita isi biar view edit bisa kepanggil dan menampilkan data yang
diinginkan.
public function edit($id)
{
$user = User::find($id);
return view('edit', ['user' => $user]);
}
Kalo udah dibuat sekarang gimana cara
cek nya? Kalo kalian mau lewat cara manual bisa
ketik alamat seperti home/1/edit
dimana 1 merupakan id dari data yang mau kita edit.
Kalo kalian mau cara yang normal, kalian
perlu edit sebagian tampilan home. Dibagian table nya, tepatnya di bagian
tombol action yang edit kalian ubah jadi seperti ini.
<tbody>
@foreach ($users as $user)
<tr>
<td>{{$user->name}}</td>
<td>{{$user->email}}</td>
<td>
<a href="{{route('home.edit', $user->id)}}" class="btn btn-warning"><span class="fa fa-edit"></span></a>
<button class="btn btn-danger"><span class="fa fa-trash"></span></button>
</td>
</tr>
@endforeach
</tbody>
Sekarang kita buat fungsi update() nya di controller.
public function update(Request $request, $id)
{
$new_data = User::find($id);
$new_data->name = $request->name;
$new_data->email = $request->email;
$new_data->email_verified_at = now();
$new_data->password = Hash::make($request->password);
$new_data->remember_token = Str::random(10);
$new_data->save();
return redirect(route('home.index'));
}
Hampir sama kaya input data, bedanya… di-update data kita ga
buat objek baru, tapi kita ambil data dari database buat dibuat objek. Habis
itu isinya baru kita ganti dengan cara di assign dengan nilai baru yang barusan
kita inputin dari form.
Jika fungsi update() udah jadi, sekarang waktunya percobaan.
Kalian bisa mengedit salah satu data kemudian submit datanya.
Perubahan yang aku buat itu ada di data nomor 2 dari atas. Aku
tambahin angka ‘2’ di namanya.
Ta-da~ Sekali lagi Update data selesai… cepet ya? Gampang ya?
Iyalah Laravel. Selanjutnya delete ya guys, terakhir nih…
What’s Next?
Komentar
Posting Komentar