Untuk menginput data ke database dengan laravel, caranya tidak sulit. tidak jauh berbeda dengan cara menginput data ke database dengan php dan codeigniter, yang sudah kita pelajari sebelumnya di www.malasngoding.com.
Silahkan teman-teman baca dulu tutorial sebelumnya juga belum, yaitu tutorial membuat CRUD dengan laravel part 1.
Oke langsung saja kita masuk ke materi cara menginput data ke database dengan laravel dalam seri tutorial membuat CRUD dengan Laravel.
Menginput Data Ke Database Dengan Laravel
Pertama yuk kita buat dulu route dengan nama β/pegawai/tambahβ.
belajar_laravel/routes/web.php
1
|
Route::get(‘/pegawai/tambah’,‘PegawaiController@tambah’);
|
disini kita membuat pengaturan route, jika di akses route βpegawai/tambahβ , maka akan kita perintahkan untuk menjalankan method tambah yang ada dalam controller PegawaiController.
Sekarang kita buat dulu method tambah nya dalam controller PegawaiController.
belajar_laravel/app/Http/Controllers/PegawaiController.php
1
2
3
4
5
6
7
8
|
// method untuk menampilkan view form tambah pegawai
public function tambah()
{
// memanggil view tambah
return view(‘tambah’);
}
|
Coba teman-teman perhatikan pada method tambah yang kita buat seperti di atas. pada method ini kita memerintahkan untuk menampilkan view tambah.
Di sini rencananya kita akan membuat form penginputan data pegawai pada view tambah ini. karena kita belum punya view tambah, sekarang kita buat view baru dengan nama tambah.blade.php dalam folder views seperti biasa.
belajar_laravel/resources/views/tambah.blade.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<!DOCTYPE html>
<html>
<head>
<title>Tutorial Membuat CRUD Pada Laravel – www.malasngoding.com</title>
</head>
<body>
<h2><a href=“https://www.malasngoding.com”>www.malasngoding.com</a></h2>
<h3>Data Pegawai</h3>
<a href=“/pegawai”> Kembali</a>
<br/>
<br/>
<form action=“/pegawai/store” method=“post”>
{{csrf_field() }}
Nama <input type=“text” name=“nama” required=“required”> <br/>
Jabatan <input type=“text” name=“jabatan” required=“required”> <br/>
Umur <input type=“number” name=“umur” required=“required”> <br/>
Alamat <textarea name=“alamat” required=“required”></textarea> <br/>
<input type=“submit” value=“Simpan Data”>
</form>
</body>
</html>
|
Pehatikan lagi pada view tambah.blade.php yang kita buat di atas, untuk action form nya kita buat di arahkan ke route β/pegawai/storeβ. karena kita ingin nanti route βpegawai/storeβ yang akan menangani pemprosesan data yang di input. agar bisa di olah oleh controller.
Di dalam form kita juga telah membuat beberapa buah form inputan, yaitu ada nama, jabatan, umur dan alamat. sesuai dengan format table pegawai yang sudah kita buat sebelumnya.
Oh ya, di sini kita berjumpa lagi dengan 1 fitur keren dari laravel, yaitu csrf protection. csrf projection semacam fitur keamanan untuk pencegahan penginputan data dari luar aplikasi atau sistem kita.
Nah, kenapa saya bilang laravel keren? karena laravel sudah menginclude fitur ini secara otomatis. hanya dengan menambahkan perintag {{ csrf_field() }} seperti di atas, maka laravel akan otomatis meng-generate kode token otomatis, yang di buat dalam bentuk form hidden.
Gak percaya? yuk kita coba lihat. silahkan teman-teman akses sekarang form tambah pegawai ini dengan alamat localhost:8000/pegawai/tambah. sesuai dengan yang kita atur di route sebelumnya.
Kemudian klik kanan dan pilih inspect element.
Oke ya kita lanjutkan lagi, jika tombol simpan diklik kita belum bisa memasukkan data ke database. karena kita belum punya aksi untuk mengolah data yang di input agar di insert ke database.
Karena pada form tambah pegawai action nya kita buat β/pegawai/storeβ, maka pada saat form di submit, akan di arahkan ke route β/pegawai/storeβ untuk di proses.
Sekarang kita buat route baru lagi. yaitu route β/pegawai/storeβ.
belajar_laravel/routes/web.php
1
|
Route::post(‘/pegawai/store’,‘PegawaiController@store’);
|
Pada route ini kita menggunakan method βpostβ, tidak lagi menggunakan method βgetβ seperti pada route sebelumnya yang kita buat.
Karena kita mengirimkan data melalui form ke route β/pegawai/storeβ. makanya kita wajib menggunakan method post pada route nya.
Route ini kita perintahkan untuk menjalankan method store dalam controller PegawaiController, maka sekarang kita buat lagi sebuah metho baru dalam controller PegawaiController. yaitu method store.
belajar_laravel/app/Http/Controllers/PegawaiController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// method untuk insert data ke table pegawai
public function store(Request $request)
{
// insert data ke table pegawai
DB::table(‘pegawai’)->insert([
‘pegawai_nama’ => $request–>nama,
‘pegawai_jabatan’ => $request–>jabatan,
‘pegawai_umur’ => $request–>umur,
‘pegawai_alamat’ => $request–>alamat
]);
// alihkan halaman ke halaman pegawai
return redirect(‘/pegawai’);
}
|
Perhatikan pada method store di atas. di sini kita menangkap data yang dikirimkan dari form tambah pegawai.
Cara menangkapnya itu di sini kita menangkap datanya di dalam parameter fungsi store(). kita beri keterangan Request. di ikuti dengan nama variabel yang ingin kita jadikan sebagai penyimpan data yang dikirim dari form. di sini kita menyimpannya dalam variabel $request.
1
2
|
public function store(Request $request)
{
|
Kemudian tinggal kita insert data nya ke table pegawai dengan menggunakan query builder laravel untuk insert data.
1
2
3
4
5
6
7
|
// insert data ke table pegawai
DB::table(‘pegawai’)->insert([
‘pegawai_nama’ => $request–>nama,
‘pegawai_jabatan’ => $request–>jabatan,
‘pegawai_umur’ => $request–>umur,
‘pegawai_alamat’ => $request–>alamat
]);
|
Fungsi table() untuk memberitahukan nama table, fungsi insert() bertujuan untuk menginsert data dan menetapkan data apa saja yang ingin di insert. Membuat CRUD Dengan Laravel Part 2
Jadi query builder di atas sama saja artinya seperti :
1
|
INSERT INTO pegawai (‘pegawai_nama’,‘pegawai_jabatan’,‘pegawai_umur’,‘pegawai_alamat’) VALUES (‘nama’,‘jabatan’,‘umur’,‘alamat’);
|
Dan bagian yang paling terakhir nya setelah kita menginput datanya ke table pegawai, maka kita perintahkan untuk mengalihkan halaman ke halaman pegawai atau ke route βpegawaiβ kembali.
1
2
|
// alihkan halaman ke halaman pegawai
return redirect(‘/pegawai’);
|
Sekarang coba kita coba jalankan.
Akses localhost:8000/pegawai
dan klik tambah pegawai baru. maka akan di alihkan ke halaman tambah pegawai.
Coba isi beberapa data percobaan. dan klik tombol simpan data.
Dan datapun berhasil tersimpan ke table pegawai, dan tampil pada halaman data pegawai.
Oke teman-teman sekian dulu tutorial laravel tentang cara menginput data ke database. Membuat CRUD Dengan Laravel Part 2
Sebelumnya kita telah belajar cara menampilkan data dari database dengan laravel. dan pada tutorial part 2 ini kita juga telah belajar tentang cara menginput data ke database dengan laravel.
Selanjutnya pada part 3 kita akan belajar tentang cara mengedit atau mengupdate data pada database dengan laravel. dan belajar menghapus data dari database juga dengan laravel.
Terima kasih sudah membaca tutorial Membuat CRUD Dengan Laravel Part 2.