#16-Laravel-Eloquent

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.

Persiapan

Pastikan teman-teman sudah memiliki database, dan sudah melakukan konfigurasi database pada file .env nya. Kita masih akan menggunakan database learning_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 employee. jadi kita buat dulu model employee 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.

php artisan make:model Employee

atau jika teman-teman ingin membuatkan file migration untuk table/model pegawai ini teman-teman bisa menulis perintah berikut.

php artisan make:model Employee -m

Penjelasan tentang migration baca di sini

Disini saya membuat table employee dalam bahasa inggris dikarenakan secara otomatis laravel menerapkan sistem plural atau jamak. dengan bahasa inggris tentunya. jadi pada saat kita membuat model dengan nama employee, laravel menganggap nama table yang akan kita buat adalah employees.

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.

Ubah file learning_laravel/database/migrations/xxx_create_employees_table

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateEmployeesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('employees', function (Blueprint $table) {
            $table->increments('id');
            $table->string('fullname');
            $table->char('email',100);
            $table->text('address');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('employees');
    }
}

lalu ketik command

php artisan migrate

Cek database learning_laravel akan ada table baru bernama employees

Table employees

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.

Fitur seeding laravel juga sudah dibahas sebelumnya. silahkan teman-teman baca lagi tutorial seeding dan faker pada 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 EmployeeSeeder.

php artisan make:seed EmployeeSeeder

Maka akan dibuatkan sebuah file seeder dalam belajar_laravel/database/seeds.

Buka file EmployeeSeeder.php nya dan terapkan Faker di dalamnya.

learnin_laravel/database/seeds/EmployeeSeeder.php

<?php

use Illuminate\Database\Seeder;

use Faker\Factory as Faker;

class EmployeeSeeder extends Seeder
{
    /**
     * 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 employees dengan faker
        	DB::table('employees')->insert([
        		'fullname' => $faker->name,
                'email' => $faker->email,
        		'address' => $faker->address,
        	]);
 
        }
    }
}

cek kembali table employees

Table employees after Seeder

Eloquent Laravel

Setelah kita punya data untuk mencoba fitur Eloquent Laravel, mari kita memulai

Menambahkan baris route pada routes/web.php

Route::get('/employee', 'EmployeeController@index');

Membuat Controller, buka command line lalu masuk ke direktori learning_laravel, ketikan perintah berikut

php artisan make:controller EmployeeController

Kemudian ubah learning_laravel/app/Http/controllers/EmployeeController.php, samakan dengan file berikut

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

// panggil model pegawai
use App\Employee;

class EmployeeController extends Controller
{
    public function index()
    {
    	// mengambil data pegawai
    	$employee = Employee::all();

    	// mengirim data pegawai ke view pegawai
    	return view('employee', ['data' => $employee]);
    }

}

Perhatikan pada controller pegawai di atas, pertama pada bagian luar class kita panggil model Employee. sesuai dengan letak model yang terletak dalam folder app.

use App\Employee;

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

Buat sebuah view baru dengan nama employee.blade.php.

<!DOCTYPE html>
<html>
<head>
	<title>Tutorial #16-Laravel-Eloquent</title>
</head>
<body>

<h1>Data Employee</h1>
<h3>ombagoes.com</h3>

<ul>
	@foreach($data as $row)
		<li>{{ "Nama : ". $row->fullname . ' | Alamat : ' . $row->address }}</li>
	@endforeach
</ul>

</body>
</html>

Run php artisan serve, lalu buka browser http://localhost:8000/employee

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>