Eloquent Laravel – Halo teman-teman semua, selamat datang kembali di tutorial laravel bahasa indonesia terlengkap. dari malasngoding.com.
Seperti yang sudah saya singgung sebelumnya pada tutorial Membuat CRUD dengan Laravel, kita akan mempelajari sebuah fitur keren dari laravel, yaitu Eloquent.
Sesuai dengan judul tutorial laravel ini, Kita akan belajar tentang Eloquent Laravel. jadi akan dijelaskan secara jelas tentang pengertian Eloquent laravel, cara menggunakan eloquent laravel, dan kita juga akan belajar membuat CRUD dengan Eloquent laravel.
Tentu untuk tutorial Membuat CRUD dengan Eloquent laravel ini akan kita bahas pada tutorial selanjutnya.
Agar materi belajar Laravel kita terstruktur dan berurutan. sehingga memudahkan teman-teman untuk belajar laravel.
Eloquent Laravel
Pada tutorial ini kita hanya akan berkenalan dengan eloquent, dan belajar cara penggunaan eloquent laravel. Pada tutorial selanjutnya baru kita akan masuk ke cara membuat CRUD dengan eloquent laravel atau eloquent orm.
Oke kita mulai dari pengertian eloquent laravel.
Pengertian Eloquent Laravel
Seperti yang dijelaskan pada dokumentasi laravel, Eloquent adalah sebuah fitur untuk mengelola data yang ada pada database dengan sangat mudah. Eloquent ORM menyediakan fungsi-fungsi active record, atau fungsi-sungsi query sql untuk mengelola data pada database.
Dan fungsi query nya semua sudah dibuat dan disediakan secara default dalam laravel. jadi kita tidak perlu lagi mengetik query sql yang panjang-panjang.
Simpel nya gini, jadi dengan Eloquent, kita bisa mengelola data yang ada pada database dari hanya satu buah model. misalnya kita punya table siswa, maka kita juga akan mempunyai sebuah model dengan nama siswa, nah dengan model siswa ini kita bisa mengelola data-data yang ada pada tabel siswa dengan mudah dan cepat.
Kita bisa menginput data, mengedit, menampilkan, mengupdate, bahkan kita juga bisa menggunakan relasi tabel dengan sangat mudah!.
Struktur penulisan coding nya pun sangat singkat.
Jika secara manual pada PHP native, jika kita ingin mengakses atau menampilkan data dari table siswa, biasanya kita menggunakan query “select * from siswa” kan?
Nah, jika kita menggunakan eloquent laravel, kita cukup mendefinisikan nama modelnya, kemudian kita bisa langsung menggunakan fungsi all() untuk mengambil semua data pada table siswa. jadinya codingan kita sangat pendek, lumayan bisa menghemat tenaga untuk ngetik panjang-panjang :D.
Nah, sampai di sini mudah-mudahan teman-teman sudah bisa menangkap pengertian eloquent orm ini. intinya eloquent adalah fitur bantuan yang disediakan oleh laravel untuk memudahkan kita mengelola data yang ada pada database.
Silahkan sesuaikan dengan konfigurasi database teman-teman, di sini saya sudah memiliki sebuah database dengan nama belajar_laravel.
Kemudian sebagai contoh kita akan membuat sebuah table data dan sebuah model yang akan meng-handle table ini.
Misalnya sebagai contoh di sini kita akan membuat sebuah table untuk meyimpan data pegawai. jadi kita buat dulu model pegawai nya.
Untuk membuat model pada laravel, kita bisa membuatnya secara manual atau kita juga bisa menggunakan perintah php artisan.
Untuk membuat model menggunakan php artisan, silahkan buka terminal atau cmd, kemudian masuk ke direktori project laravelnya, dan ketik perintah berikut.
1
php artisan make:model Pegawai
atau jika teman-teman ingin membuatkan file migration untuk table/model pegawai ini teman-teman bisa menulis perintah berikut.
1
php artisan make:model Pegawai-m
atau
1
php artisan make:model Pegawai--migration
Tutorial migration sudah kita bahas pada tutorial sebelumnya, silahkan teman-teman baca pada tutorial Migration Laravel sebelumnya.
membuat model dan migration laravel
Perhatikan pada gambar di atas, kita memerintahkan untuk membuat model dengan nama “Pegawai”. tapi kenapa file migration yang dibuat namanya “create_pegawais_table” ??
Ini karena secara otomatis laravel menerapkan sistem plural atau jamak. dengan bahasa inggris tentunya. jadi pada saat kita membuat model dengan nama pegawai, laravel menganggap nama table yang akan kita buat adalah pegawais.
Jika kita membuat model dengan nama member, maka laravel akan menganggap table nya adalah members.
Jika kita membuat model dengan nama barang, maka laravel menganggap table nya adalah barangs.
Jika kita membuat model dengan nama admin, maka laravel menganggap table nya adalah admins.
Tidak masalah, laravel hanya ingin memudahkan kita dalam penamaan, kita bisa mengatasi masalah ini nantinya jika kita tidak ingin menggunakan plural dari laravel. kita skip saja dulu. akan kita bahas nanti pada bagian model.
Sekarang kita selesaikan bagian migration saja dulu.
Buka file migration create_pegawais_table nya tadi, file migration yang lain boleh teman-teman hapus saja dulu, agar tidak pusing.
Kemudian tambahkan kolum-kolum yang ingin kita buat pada table pegawai. caranya sudah dijelaskan pada tutorial sebelumnya tentang migration laravel. karena ini hanya contoh, saya akan menambahkan kolum id, nama dan alamat saja.
Perhatikan pada file migration di atas, karena kita akan membuat table “pegawai”, bukan “pegawais”, jadi kita ubah menjadi “pegawai”.
migration eloquent
Kemudian migrate dengan mengetikkan perintah berikut.
1
php artisan migrate
php artisan migrate
Oke sekarang sudah berhasil migration, dan lihat database belajar_laravel. kita sudah punya table pegawai sekarang, sesuai dengan yang kita buat pada file migration pegawai.
membuat table dengan migration
Cara Penggunaan Eloquent Laravel
Sampai tahap ini kita sudah siap untuk menggunakan Eloquent laravel.
Di sini kita coba dasar nya saja dulu, pada tutorial selanjutnya baru kita akan masuk ke tahap yang lebih komplek dengan langsung belajar membuat CRUD dengan eloquent.
Kita akan mencoba menampilkan data dari database dengan dengan menggunakan fitur eloquent laravel.
Karena kita akan mencoba menampilkan data dari table pegawai, kita perlu beberapa data testing pada table pegawai. saya akan mencoba menginput data dummy ke table pegawai dengan menggunakan fitur seeding laravel.
Karena agak capek dan menyita waktu jika kita menginput data ke table pegawainya secara manual. jadi kita gunakan saja fitur yang sudah ada di laravel. 🙂
Menginput data dummy dengan Faker & Seeding Laravel
Buat class seeding nya terlebih dulu, di sini saya membuat class seeding dengan nama PegawaiSeeder.
1
php artisan make:seed PegawaiSeeder
Maka akan dibuatkan sebuah file seeder dalam belajar_laravel/database/seeds.
Buka file PegawaiSeeder.php nya dan terapkan Faker di dalamnya.
belajar_laravel/database/seeds/PegawaiSeeder.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
27
28
29
30
31
<?php
use Illuminate\Database\Seeder;
use Faker\Factory as Faker;
classPegawaiSeederextendsSeeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// data faker indonesia
$faker=Faker::create('id_ID');
// membuat data dummy sebanyak 10 record
for($x=1;$x<=10;$x++){
// insert data dummy pegawai dengan faker
DB::table('pegawai')->insert([
'nama'=>$faker->name,
'alamat'=>$faker->address,
]);
}
}
}
Syntax di atas sudah pernah saya jelaskan pada tutorial Seeding & Faker pada laravel.
Dan jalankan seeder nya dengan perintah php artisan.
1
php artisan db:seed--class=PegawaiSeeder
membuat data dummy dengan seeding dan faker
dan sekarang kita sudah punya data dummy untuk mencoba fitur eloquent nantinya.
menampilkan data dengan eloquent
Eloquent Laravel
Setelah kita punya data untuk mencoba fitur Eloquent Laravel, sekarang buka lagi file model Pegawai.php.Seperti yang saya jelaskan sebelumnya, laravel menerapkan sistem plural atau jamak pada penamaan model dan table. maka kita set dulu nama table yang akan di handle oleh model Pegawai.php. karena secara default laravel menganggap table yang di handle oleh model Pegawai.php adalah table pegawais. sedangkan nama table kita adalah pegawai.
Jadi kita bisa melakukan pengaturan pada model Pegawai.php dengan menambahkan perintah
1
protected$table="pegawai";
agar model Pegawai.php men-handle table pegawai, bukan pegawais.
belajar_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 buat route untuk menampilkan data pegawai dengan eloquent.
belajar_laravel/routes/web.php
1
2
3
4
5
6
7
8
<?php
Route::get('/',function(){
return view('welcome');
});
Route::get('/pegawai','PegawaiController@index');
di sini kita membuat pengaturan saat route ‘/pegawai’ diakses, maka akan dijalankan method index pada PegawaiController.php.
1
Route::get('/pegawai','PegawaiController@index');
Buat controller dengan nama PegawaiController.php menggunakan php artisan.
1
php artisan make:controller PegawaiController
Kemudian pada PegawaiController.php, ketik perintah berikut.
perhatikan pada controller pegawai di atas, pertama pada bagian luar class kita panggil model Pegawai. sesuai dengan letak model yang terletak dalam folder app.
1
use App\Pegawai;
kemudian pada method atau function index (sesuai dengan yang kita buat pada route) kita menggunakan fitur eloquent dengan mengambil data dari table pegawai hanya dengan fungsi all().
dan terakhir kita passing datanya ke view pegawai.
Buat sebuah view baru dengan nama pegawai.blade.php.
Jika sebelumnya kita telah berhasil menampilkan semua data yang ada pada table pegawai, sekarang kita akan berkenalan sedikit lebih jauh dengan beberapa fungsi eloquent yang bisa teman-teman gunakan dikemudian hari pada saat membangun aplikasi atau sistem informasi.
Eloquent telah menyediakan beberapa fungsi lainnya seperti menyeleksi data berdasarkan ID data, menampilkan record data yang pertama, meyeleksi data yang lebih spesifik (WHERE), dan masih banyak lagi.
Mendapatkan Data Record Yang Pertama ( first () )
Pada method index(), coba teman-teman gunakan fungsi first(). seperti contoh berikut.
1
2
3
4
5
6
7
8
9
public function index(){
// mengambil data pegawai yang pertama
$pegawai=Pegawai::first();
// mengirim data pegawai ke view pegawai
return view('pegawai',['pegawai'=>$pegawai]);
}
Maka yang tampil adalah data pegawai yang pertama.
Mendapatkan Data Berdasarkan ID ( find() )
Untuk menyeleksi data pegawai berdasarkan id, kita bisa menggunakan fungsi find().
Perhatikan contoh berikut.
1
2
3
4
5
6
7
8
9
public function index(){
// mengambil data pegawai yang id nya 1
$pegawai=Pegawai::find(1);
// mengirim data pegawai ke view pegawai
return view('pegawai',['pegawai'=>$pegawai]);
}
Di dalam parameter fungsi find() teman-teman bisa mengisi id pegawai yang ingin ditampilkan.
Pada contoh di atas, kita memasukkan angka 1, berarti yang ditampilkan adalah data pegawai Raisa Suci Hartati.
Seleksi Data dengan ( where() )
Butuh Query yang lebih spesifik lagi?
Kita bisa gunakan fungsi where. misalnya kita ingin menyeleksi data pegawai yang bernama Jamal Uwais, maka querynya seperti berikut.
1
2
3
4
5
6
7
8
9
public function index(){
// mengambil data pegawai yang bernama Jamal Uwais
Ada banyak yang bisa kita terapkan fungsi where() ini, di antaranya jika teman-teman ingin menampikan data pegawai yang id nya lebih besar dari 10, teman-teman bisa menulisnya seperti berikut.
1
2
// mengambil data pegawai yang id nya lebih besar dari 10
$pegawai=Pegawai::where('id','>',10)->get();
jika ingin lebih besar sama dengan 10,
1
2
// mengambil data pegawai yang id nya lebih besar sama dengan 10
$pegawai=Pegawai::where('id','>=',10)->get();
Jika ingin menampilkan data pegawai yang id nya lebih kecil dari, bisa menggunakan tanda “<“.
Sangat simpel.
Jika ingin membuat pencarian data, misalnya ingin menampilkan semua data pegawai yang ada huruf a nya, maka penulisannya seperti berikut.
1
2
// mengambil data pegawai yang di namanya ada huruf a
Teman-teman bisa gunakan fungsi paginate(). dan isi paremeternya dengan berapa jumlah record data yang ingin ditampilkan perhalaman.
1
2
// menampilkan 10 data pegawai per halaman
$pegawai=Pegawai::paginate(10);
Selanjutnya untuk membuat link penomoran paginationnya, baca di sini.
Masih ada banyak sekali kelebihan kita menggunakan Eloquent laravel. ini hanya contoh kecilnya saja. ini hanya contoh cara penggunaan Eloquent Laravel.
Bahkan kita juga bisa langsung menerapkan relasi table seperti misalnya Many to Many atau One to Many dan lain-lain. akan kita bahas pada tutorial laravel selanjutnya.
Sekian dulu teman-teman tutorial Eloquent Laravel. sampai jumpa di tutorial Eloquent 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 ...
oh ya untuk yang fungsi ::find();, kalau cuma ::find(1); tidak muncul sama errornya “Trying to get property of non-object ”, tapi kalau ::find([1]); baru muncul data yang id 1. maaf bang bnyak nanya, masih cupu baru belajar. 🙂
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.
sudah bang, kan yang fungsi peagawai::all() bisa, selain yang ::all() nggk bisa
oh ya untuk yang fungsi ::find();, kalau cuma ::find(1); tidak muncul sama errornya “Trying to get property of non-object ”, tapi kalau ::find([1]); baru muncul data yang id 1. maaf bang bnyak nanya, masih cupu baru belajar. 🙂
Iya saya juga error bang
Iya saya juga error bang
gak bisa pake yang selain ::all() juga
Error “Trying to get property ‘nama’ of non-object” bagaimana solusinya mas?
izin tanya pas mau dimigrate itu DBnya tidak nemu tableny