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');
}
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
Posting Komentar