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>

Sebenernya sama aja kaya kalian input alamat manual, ini cuma dibuat versi tombolnya aja. Kalo udah coba kalian klik tombolnya, nanti akan langsung masuk ke halaman form edit yang kolom inputnya sebagian udah ke-isi.



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

Postingan Populer