CRUD Laravel Menggunakan Eloquent – Sebelumnya kita telah belajar tentang eloquent. untuk teman-teman yang belum membaca tutorial sebelumnya tentang Pengertian dan Cara menggunakan Eloquent, teman-teman bisa membacanya pada tutorial laravel sebelumnya atau silahkan teman-teman klik di sini.
Jika teman-teman mengikuti tutorial laravel di www.malasngoding.com. pada part sebelumnya kita telah belajar tentang cara membuat CRUD dengan laravel menggunakan query builder, dan saya sudah pernah menyinggung tentang yang namanya eloquent.
Setelah belajar membuat CRUD dengan query builder laravel, saya juga pernah mengatakan bahwa kita akan belajar juga menggunakan Eloquent Laravel untuk membuat CRUD.
Yuk langsung kita mulai tentang cara membuat CRUD dengan Eloquent Laravel.
CRUD Laravel Menggunakan Eloquent
Seperti yang telah kita ketahui, CRUD merupakan singkatan dari Create, Read, Update dan Delete. dan merupakan istilah untuk proses pengolahan data pada database. seperti misalnya penginputan data ke database, menampilkan data dari database, mengedit/mengupdate data pada database dan menghapus data dari database.
Pada tutorial ini kita akan belajar membuat CRUD dengan Laravel. menggunakan fitur Eloquent.
Persiapan
Di sini saya membuat project laravel baru dengan nama “malasngoding_crud_laravel“. silahkan teman-teman masuk ke direktori htdocs melalui terminal atau cmd, kemudian install laravel menggunakan composer, seperti yang telah dijelaskan sebelumnya.
Pastikan teman-teman telah memiliki database dengan nama “belajar_laravel”, jika teman-teman mengikuti tutorial ini.
Dan pastikan teman-teman telah memiliki table dengan nama “pegawai”. jika teman-teman mengikuti tutorial laravel sebelumnya di www.malasngoding.com, kita telah membuat table pegawai dengan fitur migration dan sudah menginput data dummy menggunakan faker.
Silahkan teman-teman sesuaikan dengan username, password dan nama database nya.
Selanjutnya kita membutuhkan sebuah controller dan sebuah model untuk meng-handle CRUD data pegawai. buat controller baru dengan nama PegawaiController.php. dan buat sebuah model baru dengan nama Pegawai.php.
Buat controller PegawaiController.php, masuk ke direktori project malasngoding_crud_laravel, kemudian buat controller dengan php artisan.
1
php artisan make:controller PegawaiController
Setelah selesai membuat controller dengan nama PegawaiController, selanjutnya buat model dengan nama Pegawai.
1
php artisan make:model Pegawai
Membuat model dan controller pegawai dengan php artisan
Mantap! kita sudah punya controller dan model untuk membuat CRUD pegawai.
Sekarang kita lanjut ke proses CRUD Eloquent. yaitu cara menampilkan data dari database menggunakan Eloquent laravel.
Menampilkan Data Dari Database dengan Eloquent Laravel
Buat route baru, untuk menampilkan data pegawai kita akan membuat route ‘/pegawai’. dengan memerintahkan untuk menjalankan method index pada controller PegawaiController.php.
Jadi pada saat di akses url ‘localhost:8000/pegawai’, akan dijalankan method index yang ada pada controller PegawaiController.php.
malasngoding_crud_laravel/routes/web.php
1
Route::get('/pegawai','PegawaiController@index');
Selanjutnya kita setting dulu model Pegawai.php. karena seperti yang saya jelaskan pada tutorial Eloquent Laravel sebelumnya, Laravel menerapkan sistem plural atau jamak pada model. sehingga model Pegawai.php yang telah kita buat akan menganggap bahwa table yang dia handle adalah table pegawais. padahal nama table yang kita buat adalah pegawai, bukan pegawais.
Jadi sekarang kita perintahkan model Pegawai.php untuk menghandle table pegawai.
buka file model Pegawai.php, dan tambahkan perintah berikut.
1
protected$table='pegawai';
malasngoding_crud_laravel/app/Pegawai.php
1
2
3
4
5
6
7
8
9
10
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
classPegawaiextendsModel
{
protected$table="pegawai";
}
Kemudian pada controller PegawaiController.php kita buat sebuah method dengan nama index(). pada method ini kita ambil data pegawai. dan kita passing ke view pegawai.blade.php.
Pertama kita panggil dulu model Pegawai, karena kita akan menggunakan table pegawai dan model pegawai.
1
use App\Pegawai;
Selanjutnya pada method index() kita ambil data pegawai dengan fungsi all(). dan kita passing ke view pegawai.blade.php.
1
2
3
4
5
public function index()
{
$pegawai=Pegawai::all();
return view('pegawai',['pegawai'=>$pegawai]);
}
Coba lihat pada method di atas, untuk mengambil data dari table pegawai, kita tidak perlu lagi mendefinisikan atau memerintahkan untuk memanggil table pegawai. karena model Pegawai.php sudah otomatis terhubung dengan table pegawai. inilah kelebihan dan kehebatan dari Eloquent. kita tinggal mendefinisikan saja model yang ingin kita gunakan, kemudian kita gunakan fungsi all() untuk mengambil semua datanya (dari table pegawai).
1
$pegawai=Pegawai::all();
Sampai di sini kita sudah selesai untuk tahap menampikan data. sangat simple kan, karena kita menggunakan eloquent. tentu kegunaan eloquent bukan hanya sampai di sini. ada banyak lagi kelebihan fitur eloquent yang akan kita bahas selanjutnya.
Perhatikan pada view di atas, intinya menampilkan datanya ada pada fungsi foreach. karena dari controller sebelumnya kita mempassing data pegawai ke view ini dalam variabel $pegawai. jadi kita tampilkan data pegawai yang sudah ada dalam variabel $pegawai ini dengan foreach.
Kita memerintahkan untuk mengarahkan form ini ke route ‘/pegawai/store’ pada saat di submit.
1
<form method="post"action="/pegawai/store">
Jangan lupa juga untuk menambahkan fungsi {{ csrf_field() }} untuk generate kode token pada form ini. ini merupakan fitur keamanan csrf vulnerability. dan laravel sudah menyediakan fitur keamanan ini.
Saya sudah pernah menjelaskan lebih detail tentang fitur keamanan csrf ini pada tutorial laravel sebelumnya.
Jika validasi sesuai, kita perintahkan untuk menginput data yang dikirim dari form ke database. dengan perintah Eloquent.
1
2
3
4
Pegawai::create([
'nama'=>$request->nama,
'alamat'=>$request->alamat
]);
Syntax di atas adalah proses penginputan data ke database fitur eloquent dengan method create().
Mass Asignment
Karena kita menggunakan fungsi create(), maka kita wajib menambahkan perintah berikut pada model Pegawai.php.
1
protected$fillable=['nama','alamat'];
Sehingga isi full dari model Pegawai.php adalah sebagai berikut.
malasngoding_crud_laravel/app/Pegawai.php
1
2
3
4
5
6
7
8
9
10
11
12
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
classPegawaiextendsModel
{
protected$table="pegawai";
protected$fillable=['nama','alamat'];
}
Bagian ini disebut juga dengan Mass Asignment pada laravel. dimana kita bisa memfilter kolum mana saja yang boleh di input, dan kolum mana saja yang tidak boleh di input. di sini kita hanya memperbolehkan penginputan nama dan alamat. yang lainnya tidak kita bolehkan.
Tetapkan nama kolum yang boleh di input dalam variabel $fillable. dan jika teman-teman ingin membuat proteksi terhadap kolum yang tidak boleh di input teman-teman bisa menuliskan nama kolum yang tidak boleh di input pada variabel $guarded.
Teman-teman bisa membaca lebih detail tentang mass asignment laravel pada dokumentasi laravel. klik di sini.
Dan terakhir setelah semua proses selesai kita alihkan halamannya kembali ke route ‘/pegawai’ yang bertugas menampilkan semua data pegawai.
1
return redirect('/pegawai');
Sekarang kita coba lihat hasil nya. Klik pada tombol “Input Pegawai Baru”.
maka akan di arahkan ke form input data pegawai.
Jangan isi apapun dan coba klik simpan. untuk melihat apakah form validasi nya bekerja dengan baik.
CRUD Laravel
Karena kita tidak mengisi apapun, maka akan muncul notifikasi wajib isi pada masing-masing form. sekarang coba isi data sebagai percobaan. dan klik simpan.
input data ke database eloquent
Klik simpan. maka data akan tersimpan ke table pegawai. dan di alihkan ke halaman yang menampilkan semua data pegawai (route /pegawai).
Menampilkan data dari database eloquent
Proses penginputan data pegawai ke database dengan Eloquent ORM telah selesai dan berhasil. CRUD Laravel Menggunakan Eloquent.
Selanjutnya kita akan membuat proses edit dan update data dengan Eloquent Laravel.
Mengupdate Data Dari Database dengan Eloquent Laravel
Perhatikan pada tombol edit yang sudah kita buat pada view pegawai.blade.php.
nah, pada method edit() ini, kita ambil data pegawai berdasarkan id nya dengan perintah berikut. dan langsung kita masukkan ke variabel $pegawai untuk kita passing ke view pegawai_edit.blade.php.
1
$pegawai=Pegawai::find($id);
pada view pegawai_edit.blade.php ini kita buat form untuk edit data pegawai.
data yang kita passing dari controller tadi kita tampilkan dalam form masing-masing. perhatikan pada bagian form. pada masing-masing form nama dan alamat langsung kita tampilkan data nama dan alamat nya masing-masing.
Perhatikan juga pada tag form. action nya akan kita buat pada route /pegawai/update/id_pegawainya. dengan method post.
Kemudian lagi nantinya pada route update tersebut akan kita gunakan method PUT. sebenarnya tidak harus menggunakan method PUT, teman-teman juga masih bisa menggunakan method post pada route. di sini kita hanya mencoba dengan menggunakan method put.
Karena semakin banyak mencoba akan semakin banyak yang kita tau dan kita explore.
route ini akan menjalankan method update() pada controller PegawaiController.php, sebagai peng-eksekusi (yang menangani) data yang dikirimkan dari form edit.
buat method update() pada controller PegawaiController.php
ada 2 data yang kita terima pada method update(). yaitu data id yang kita terima dari route, dan data Request yang kita terima dari form edit.
Selanjutnya tinggal kita eksekusi dengan query update dari Eloquent.
1
2
3
4
$pegawai=Pegawai::find($id);
$pegawai->nama=$request->nama;
$pegawai->alamat=$request->alamat;
$pegawai->save();
fungsi find() di sini berguna untuk menemukan data yang sesuai dengan id (yang di tulis dala parameter find()). jadi maksudnya select pegawai yang id nya sesuai dengan id pegawai yang di edit.
kemudian kita ubah data nama dan alanat dengan memasukkan datanya masing-masing seperti sebelumnya.
terakhir kita simpan dengan fungsi save().
Setelah selesai, kita alihkan kembali halamannya ke route ‘/pegawai’.
Kita coba jalankan, klik pada tombol edit. di sini saya klik edit pada data pegawai yang bermana diki alfarabi hadi.
update data dengan eloquent laravel
Saya mencoba mengubah nama dan alamat, kemudian klik simpan.
Edit data eloquent
Dan data pegawai berhasil di update.
Selesai sudah proses edit atau update data dengan eloquent laravel. selanjutnya untuk menyelesaikan proses CRUD Laravel ini, kita juga akan membuat proses hapus data dari database dengan menggunakan eloquent.
Menghapus Data Dari Database dengan Eloquent Laravel
Perhatikan pada tombol hapus yang sudah kita buat sebelumnya.
Terima kasih sudah membaca tutorial CRUD Laravel Menggunakan Eloquent. sampai jumpa di tutorial laravel selanjutnya.
Diki Alfarabi Hadi
Coding enthusiast.
Someone who love learn something new. especially about web programming and web design. happy to share about knowledge and learn from other.
Action URL Laravel – Action URL adalah sebuah fitur pada laravel untuk tujuan generate URL ke controller, dan juga bisa mengirimkan data parameter seperti pada ...
Multi Bahasa Localization Laravel – Multi bahasa merupakan fitur pada website untuk menampilkan informasi dalam berbagai bahasa. Laravel telah menyediakan fitur multi bahasa. sehingga untuk ...
Import Excel Laravel – Setelah sebelumnya kita belajar tentang membuat export atau cetak laporan excel pada laravel, seperti ada yang kurang jika kita tidak membahas ...
Export Excel Laravel – Fitur export atau cetak laporan excel merupakan salah satu fitur yang paling penting. bagi teman-teman yang sering membuat aplikasi pesanan dari ...
Tutorial Laravel #25 : Relasi Many To Many Eloquent – Malas Ngoding•6 years ago
[…] bisa membuat table ini seperti cara sebelumnya yang sudah kita pelajari, yaitu menggunakan model dan migration. kemudian diikuti dengan menginput data dummy menggunakan […]
Download Ebook belajar HTML & CSS dasar untuk pemula gratis.
Ebook ini bisa di download oleh teman-teman yang baru mulai belajar HTML dan CSS dasar tapi tidak tahu mau memulai belajar dari mana.
materi pembelajaran sudah di susun secara sistematis dan di dukung contoh gambar.
[…] bisa membuat table ini seperti cara sebelumnya yang sudah kita pelajari, yaitu menggunakan model dan migration. kemudian diikuti dengan menginput data dummy menggunakan […]
[…] sekali materi laravel yang sudah kita bahas sebelumnya, mulai dari instalasi, route dan view, model, controller, eloquent dan […]
[…] BACA : Mengambil Data Dengan Eloquent Laravel […]