Tutorial Simple CRUD - Create - Dunia Laravel



Artikel ini lanjutan dari CRUD bagian read. Jadi kalo misal kalian bingung coba baca ulang artikel sebelumnya.
Sekarang kita akan coba buat Create data atau Input data ke database.


Table of Contents

  • Things That Need to be Prepared
  • Create Data
  • What's Next



Things That Need to be Prepared


Di artikel sebelumnya kita juga sudah menyiapkan beberapa hal. Jadi sekarang aku ga akan nyebutin lagi. Sekarang hal penting yang perlu disiapin itu adalah server local kalian harus nyala.


Create Data


Langsung aja kita mulai buat fungsi create datanya. Jadi disini kita akan pake 2 route, yaitu route home/create dan home/store. Dimana salah satu punya method get() dan yang satunya lagi punya method post().

Kita mulai dari route home/create. sesuai namanya kita akan buat fungsi create() dibagian controller yang sudah kita buat. Route ini nantinya akan berfungsi sebagai alamat tempat form input data ada. Jadi sebelum kita masuk ke controller kita perlu buat view form nya.



Kode diatas adalah contoh form input data user. Form ini nantinya akan dikirim ke route home/store menggunakan method POST yang akan ngirim 3 data yaitu name, email, dan password.

Dari form diatas terlihat ada tulisan @csrf. CSRF atau singkatan dari Cross-Site Request Forgery, itu sebuah serangan yang dipaksakan biar backend menjalankan perintah yang seharusnya tidak dijalankan. Jadi gunanya perintah itu adalah buat menjaga keamanan. Laravel juga secara default ga ngizinin operasi input data tanpa CSRF.

Sekarang view nya udah ada. Waktunya kembali ke controller. Jadi apa yang akan kita lakukan di controller pada fungsi create()? Disitu kita cuma mau manggil view yang barusan kita buat.

    public function create()
    {
        return view('create');
    }

Nah sekarang coba kita akses alamat home/create. Kalo jadi nanti tampilannya kaya gini



Form input udah siap, sekarang waktunya kita buat kode yang buat input data. Buat kode ini kita akan taruh di fungsi store() yang ada di controller.

    public function store(Request $request)
    {
        $new_data = new User;
        $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'));
    }

Pada fungsi store() ini, pertama kita buat objek baru berdasarkan model User yang sebelumnya udah kita buat. Objek baru itu kita kasih nama ‘new_data’. Objek ini yang nantinya kita pake buat ngirim data ke database melalui fungsi save(). Dari mana datanya? Data didapat dari form yang tadi kita buat. Masuk ke controller ini sebagai object dengan nama ‘request’.

Dari kode diatas juga ada beberapa package yang di pake kaya Hash sama Str. Jadi sebelumnya kita harus deklarasi dulu package itu di controller kita.

use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;

Kita udah masukin packagenya nih… tapi kalian tahu fungsinya? Buat Hash gunannya adalah enkripsi input, di sini kita pake buat enkripsi password. Kalo Str gunannya buat generate string, di sini kita pake ini buat generate token sebanyak 10 karakter yang di random.

Tahapannya udah selesai sekarang tinggal di coba. Kalo kalian selesai input harusnya kalian akan kembali ke halaman home/ tempat daftar data yang kalian buat sebelumnya. Dan seharusnya di situ juga akan ada data baru. Data baru yang dibuat biasanya akan ada dibagian paling bawah dari record. Kalo tampilanku jadinya kaya gini.
Dua data paling bawah adalah data yang baru aja aku inputin.




Ta-da~ Create data udah selesai… Gada query? Ya soalnya querynya udah otomatis dari laravelnya. Ga ribet kan? Langsung lanjut ke bagian edit kuy.


Komentar

Postingan Populer