Tutorial Laravel #21 : CRUD Laravel Menggunakan Eloquent


CRUD Laravel Menggunakan Eloquent

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.

composer create-project –prefer-dist laravel/laravel malasngoding_crud_laravel

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.

Baca tutorial sebelumnya : Tutorial Laravel #20 : Eloquent Laravel

Atau jika teman-teman ingin cepat, silahkan teman-teman buat table dengan nama “pegawai”, dan import file sql berikut.

pegawai.sql

Oke sekarang kita sudah punya table pegawai dan beberapa data pegawai untuk percobaan.

Selanjutnya silahkan teman-teman lakukan konfigurasi database untuk project laravel nya.

Konfigurasi database laravel ada pada file .env.

Baca : Koneksi database laravel

.env

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.

Setelah selesai membuat controller dengan nama PegawaiController, selanjutnya buat model dengan nama Pegawai.

Membuat model dan controller pegawai dengan php artisan

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

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.

Baca : Migration Laravel

Jadi sekarang kita perintahkan model Pegawai.php untuk menghandle table pegawai.

buka file model Pegawai.php, dan tambahkan perintah berikut.

malasngoding_crud_laravel/app/Pegawai.php

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.

malasngoding_crud_laravel/app/Http/controllers/PegawaiController.php

Perhatikan pada PegawaiController.php di atas,

Pertama kita panggil dulu model Pegawai, karena kita akan menggunakan table pegawai dan model pegawai.

Selanjutnya pada method index() kita ambil data pegawai dengan fungsi all(). dan kita passing ke view pegawai.blade.php.

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).

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.

Baca :

Karena data pegawainya kita passing ke view pegawai.blade.php, maka sekarang kita buat sebuah view baru dengan nama pegawai.blade.php.

malasngoding_crud_laravel/resources/views/pegawai.blade.php

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.

Sekarang kita lihat hasilnya.

php artisan serve

kemudian akses project kita

localhost:8000/pegawai

Dan hasilnya seperti berikut.

CRUD Laravel Menggunakan Eloquent

CRUD Laravel Menggunakan Eloquent

Data pegawai telah berhasil tampil.

Menginput Data Ke Database dengan Eloquent Laravel

Akan kita lanjutkan ke proses insert data ke database dengan Eloquent Laravel.

Perhatikan pada view pegawai.blade.php di atas, kita telah membuat tombol atau link untuk menambahkan form input pegawai.

yang akan diarahkan ke route ‘/pegawai/tambah’.

sekarang buat route baru, untuk menghandle form penginputan data. buat route dengan nama ‘/pegawai/tambah’.

malasngoding_crud_laravel/routes/web.php

pada saat route ini dijalankan, kita perintahkan untuk mengakses method tambah() dalam controller PegawaiController.php.

buat method tambah() dalam controller PegawaiController.php

malasngoding_crud_laravel/app/Http/controllers/PegawaiController.php

Pada method tambah kita perintahkan untuk menampilkan view pegawai_tambah.blade.php.

Sekarang buat view baru dengan nama pegawai_tambah.blade.php. kita akan membuat form penginputan data pegawai pada view ini.

malasngoding_crud_laravel/resources/views/pegawai_tambah.blade.php

Perhatikan pada bagian form.

Kita memerintahkan untuk mengarahkan form ini ke route ‘/pegawai/store’ pada saat di submit.

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.

Baca : Csrf Protection Laravel

Selanjutnya untuk form penginputan nama dan alamat masih seperti biasa,

Hanya saja di bagian bawah form saya sudah menerapkan pesan notifikasi untuk form validasi yang akan kita validasi pada method store().

Sudah saya jelaskan juga tentang cara membuat form validasi pada laravel.

Baca : Form Validasi Pada Laravel

Karena form ini akan di proses pada route ‘/pegawai/store’, maka kita buat route nya dulu.

Buat route baru dengan method post.

malasngoding_crud_laravel/routes/web.php

route ‘/pegawai/store’ ini kita buat menggunakan method post. karena route ini menangkap data yang dikirim dari form (route /pegawai/tambah).

Dan route ini kita perintah untuk menjalankan method store() pada controller PegawaiController.php.

Sekarang buat method store() pada controller PegawaiController.php.

malasngoding_crud_laravel/app/Http/controllers/PegawaiController.php

Perhatikan pada method store().

Pada parameter pertamanya kita tangkap data yang dikirim dari form ke dalam variabel $request dengan perintah Request $request.

Ini sudah saya jelaskan juga pada tutorial sebelumnya termasuk pada tutorial Membuat CRUD Laravel dengan Query Builder.

Kemudian kita cek validasinya, dengan membuat form nama dan alamat wajib isi.

Baca : Membuat Form Validasi Laravel

Jika validasi sesuai, kita perintahkan untuk menginput data yang dikirim dari form ke database. dengan perintah Eloquent.

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.

Sehingga isi full dari model Pegawai.php adalah sebagai berikut.

malasngoding_crud_laravel/app/Pegawai.php

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.

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

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

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

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.

Jika tombol edit diklik, maka akan kita arahkan ke route ‘/pegawai/edit/id_pegawai‘. sambil mengirim data id pegawai yang ingin diedit ke route.

Sekarang kita buat route baru lagi. yaitu route /pegawai/edit.

Sehingga sekarang route web.php kita menjadi seperti berikut.

malasngoding_crud_laravel/routes/web.php

dari route ini, kita mengirimkan data id ke method edit() pada controller PegawaiController.php

malasngoding_crud_laravel/app/Http/controllers/PegawaiController.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.

pada view pegawai_edit.blade.php ini kita buat form untuk edit data pegawai.

malasngoding_crud_laravel/resources/views/pegawai_edit.blade.php

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.

Oke ya, sekarang kita lanjut lagi. sekarang kita buat route baru. yaitu route /pegawai/update/id menggunakan method put.

malasngoding_crud_laravel/routes/web.php

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

malasngoding_crud_laravel/app/Http/controllers/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.

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

update data dengan eloquent laravel

Saya mencoba mengubah nama dan alamat, kemudian klik simpan.

Edit data eloquent

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.

Pada saat tombol hapus diklik, akan di arahkan ke route /pegawai/hapus/id_pegawai, sambil mengirimkan data id pegawai yang ingin di hapus juga.

Sekarang buat route nya.

malasngoding_crud_laravel/routes/web.php

route ini akan menjalankan method delete() dalam controller PegawaiController.php

Jadi kita buat lagi sebuah method delete() dalam controller PegawaiController.php.

malasngoding_crud_laravel/app/Http/controllers/PegawaiController.php

Pada method delete(), kita pilih data pegawai yang id nya sesuai dengan id yang diterima, kemudian kita hapus dengan fungsi delete().

setelah dihapus, kita alihkan halamannya kembali ke route /pegawai.

Jika teman-teman tidak ingin menggunakan

teman-teman juga bisa menggunakan fungsi berikut.

karena fungsi back() berfungsi untuk mengalihkan halaman ke halaman sebelumnya (back).

Coba klik hapus, maka data pegawai akan dihapus.

Oke teman-teman. sampai di sini selesai sudah materi tentang tutorial membuat CRUD dengan Eloquent Laravel.

Jika teman-teman ingin mendownload full source code crud laravel ini, teman-teman bisa download di link berikut.

Download Source Code Contoh CRUD Laravel Eloquent

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.

Tutorial Menarik Lainnya

action url laravel
laravel localization

Diskusi

4 Komentar
  • 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 […]

  • Tutorial Laravel #26 : Membuat Login dan Register Dengan Laravel – Malas Ngoding 6 years ago

    […] sekali materi laravel yang sudah kita bahas sebelumnya, mulai dari instalasi, route dan view, model, controller, eloquent dan […]

  • Tutorial Laravel #31 : Hapus File Dengan Laravel – Malas Ngoding 5 years ago

    […] BACA : Mengambil Data Dengan Eloquent Laravel […]

Tulis Komentar / Pertanyaan

Download ebook belajar HTML & CSS dasar untuk pemula gratis

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.

DOWNLOAD