Press "Enter" to skip to content

30 Trik Belajar Eloquent di Laravel

fadli 4

Belajar eloquent – Pada Laravel untuk mengakses dan memanipulasi data yang ada di dalam database sebetulnya terdapat 2 cara, yaitu dengan eloquent atau dengan query builder..

Perbedaan yang paling mencolok adalah pada eloquent setiap table diwakili oleh sebuah “Model”, sementara query builder tidak memerlukan model.

Misalkan sebagai contoh, didalam database kita memiliki sebuah table bernama “users”, maka kita juga harus membuatkan Model nya dengan nama class “User”..

Salah satu alasan kenapa saya sangat menyukai Laravel adalah karena terdapat nya modul Eloquent ini..

Dengan eloquent, interaksi terhadap Database jadi sangat mudah dan simple, terlebih lagi jika terdapat relasi antar table, itu sangat mudah diatasi jika kita menggunakan eloquent ini.. Tapi untuk pembahasan relasi ini akan kita bahas di pembahasan selanjutnya.

Baca juga : Free Download aplikasi SIAKAD + Courses LMS Laravel 7

Langsung saja yaa.. kita mulai topik pembahasan nya..

Oh iya sebagai catatan, disini saya berpatokan kepada Laravel versi 8 yaa..

1. Belajar Eloquent – Pembuatan Model

Seperti yang sudah saya bilang sebelum nya, pada eloquent, setiap table di database diwakili oleh sebuah model.

Untuk cara pembuatan nya pun sangat mudah, kamu tinggal jalankan perintah:

php artisan make:model Flight

Jika kamu ingin membuat sebuah model baru sekaligus dengan file migration nya, maka kamu tinggal tambahkan aja “–migration” atau “-m” dibelakang nya, sebagai contoh

php artisan make:model Flight --migration

atau

php artisan make:model Flight -m

Maka nanti akan tercipta 2 file baru sekaligus, yaitu file model nya dan file migration nya..

Kamu juga bisa mengkombinasikan dengan jenis varian lain saat pembuatan model..

# Membuat model dan juga Factory nya
php artisan make:model Flight --factory
php artisan make:model Flight -f

# Membuat model dan juga file Seeder nya
php artisan make:model Flight --seed
php artisan make:model Flight -s

# Membuat model sekaligus dengan file Controller nya
php artisan make:model Flight --controller
php artisan make:model Flight -c

# Generate model sekaligus dengan file factory, seeder, dan controller nya..
php artisan make:model Flight -mfsc

# Membuat model sekaligus dengan file migration, factory, seeder, dan controller nya..
php artisan make:model Flight --all

# Membuat pivot model..
php artisan make:model Member --pivot

2. Peletakan File Model

Karena kebetulan versi laravel yang saya gunakan adalah versi 8, maka setiap kali kita meng-generate model, akan otomatis terletak didalam app/Models..

Untuk versi yang dibawah 8, dia berada di dalam folder app

Laravel 8 memang sudah berbeda dari versi sebelum nya, dia sudah memiliki folder Models sendiri untuk menampung file-file model nya..

3. Define nama table di dalam model

Di eloquent sebetulnya sudah memiliki aturan tersendiri tentang penamaan table pada database dan penamaan class pada Model nya..

Untuk nama table harus menggunakan kata jamak, sementar untuk nama class model harus menggunakan kata tunggal..

Sebagai contoh, kamu mempunyai model “User”, maka nama table di database nya haruslah jamak yang berarti “users”..

Tapi jika hal tersebut tidak memungkinkan, anggap saja nama table di dalam database kamu tidak menggunakan aturan kata jamak, atau nama table nya berbeda jauh dengan nama class model nya, kamu masih bisa men define nama table nya di dalam sebuah model dengan menambahkan sebuah property, contoh nya sebagai berikut:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'my_flights';
}

Diatas kita memiliki class model “Flight”..

kemudian didalam nya terdapat property “protected $table = ‘my_flights’;”

Ini artinya model Flight mewakili table my_flights..

4. Penentuan Primary Key

Pada dasarnya, eloquent model akan selalu berasumsi bahwa yang menjadi primary key pada suatu table adalah sebuah kolom yang bernama id .

Tapi jika kolom primary key kamu bukanlah field id, tapi dengan nama yang lain misal seperti flight_id, kamu bisa menambahkan sebuah property baru untuk mendefine kolom primary key kamu pada sebuah model, seperti contoh berikut:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * The primary key associated with the table.
     *
     * @var string
     */
    protected $primaryKey = 'flight_id';
}

Di atas kita memiliki class Model bernama Flight, kemudian didalam nya terdapat sebuah property “protected $primaryKey = ‘flight_id’;” yang memberi tahu bahwa field primary pada table kita adalah kolom flight_id..

Kemudian jika field primary key kamu bukanlah sebuah auto increment, atau bukan sebuah angka, maka kamu harus mendefinisikan property $keyType didalam model nya, sebagai contoh:

<?php

class Flight extends Model
{
    /**
     * The data type of the auto-incrementing ID.
     *
     * @var string
     */
    protected $keyType = 'string';
}

Kita bisa lihat di atas, terdapat property “protected $keyType = ‘string’;” yang menandakan bahwa type data untuk kolom primary key nya adalah string, bukan auto increment..

5. Timestamps

Secara default, eloquent berasumsi bahwa didalam table yang ia wakili terdapat kolom created_at dan updated_at..

Dan eloquent akan mengisi nilai nya secara otomatis ketika terjadi transaksi create data atau update data..

Jika kamu ingin menonaktifkan fitur ini, atau dengan kata lain didalam table kamu tidak ada kolom created_at atau updated_at, atau kamu ingin mengisi nilai nya secara manual, maka kamu harus menambahkan property baru bernama timestamps dengan nilai false seperti dibawah ini:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * Indicates if the model should be timestamped.
     *
     * @var bool
     */
    public $timestamps = false;
}

Pada class model Flight di atas, didalam nya kita menambahkan property “public $timestamps = false;”, tujuan nya adalah agar model tersebut mengabaikan kolom created_at dan updated_at..

atau kalo ternyata di dalam table kamu kolom timestamps nya bukan bernama created_at atau updated_at, tapi dengan nama yang lain, kamu bisa mendefinisikan nya di dalam model dengan sebuah const variable sprti berikut:

<?php

class Flight extends Model
{
    const CREATED_AT = 'creation_date';
    const UPDATED_AT = 'updated_date';
}

Dengan melakukan hal seperti di atas, maka model kamu akan mengenali kolom created_at sebagai creation_date dan kolom updated_at sebagai updated_date..

6. Menentukan Koneksi Database pada Model

Jika dalam satu project Laravel kamu memiliki beberapa koneksi database / memiliki lebih dari 1 database yang sudah kamu atur di dalam file ../config/database.php seperti dibawah ini:

....
'connections' => [

        'koneksi1' => [
            'driver' => 'mysql',
            'host' => 'localhost',
            'port' => '3306',
            'database' => 'database_kucing',
            'username' => 'root',
            'password' => 'test',
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

        'koneksi2' => [
            'driver' => 'mysql',
            'host' => 'localhost',
            'port' => '3306',
            'database' => 'database_ayam',
            'username' => 'root',
            'password' => 'test',
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],
....

Diatas kita memiliki 2 koneksi, yaitu koneksi1 dan koneksi2..

Dimana masing-masing koneksi memiliki akses ke database yang berbeda, koneksi1 memiliki akses ke database_kucing, dan koneksi2 memiliki akses ke database_ayam..

Dan ketika kamu memiliki sebuah class model bernama Flight yang mewakili dari table flights, akan tetapi dikedua database tersebut sama-sama memiliki table flights, dan kamu berniat menghubungkan class model tersebut kedalam table flights yang ada didalam database_kucing, yang berarti kamu harus menghubungkan model Flight ke koneksi1..

caranya adalah seperti berikut:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * The database connection that should be used by the model.
     *
     * @var string
     */
    protected $connection = 'koneksi1';
}

Kamu tinggal tambahkan property “protected $connection = ‘koneksi1’;” seperti diatas..

7. Mulai Get Data dengan eloquent

Ketika kita membuat sebuah model yang sudah saling terkait dengan table database nya, maka kita bisa langsung melakukan interaksi dengan table tersebut, kita ga perlu lagi membuat query select data secara manual di dalam nya..

Inilah salah satu alasan yang saya suka dari eloquent nya laravel, interaksi dengan database nya bisa sangat mudah..

7.1 Get All Data

Di eloquent, untuk get semua data, kita tinggal gunakan method all.. contoh nya seperti berikut:

use App\Models\Flight;

$data = Flight::all();

foreach ($data as $flight) {
    echo $flight->name;
}

Diatas kita get semua data Flight dengan perintah Flight::all(); yang kita tampung kedalam variable data..

7.2 Get Data dengan kondisi tertentu..

Kalo kamu ingin get data tapi dengan kondisi tertentu, di eloquent kamu tetap bisa menambahkan beberapa kondisi tertentu..

Kamu bisa kasih beberapa batasan dengan method where kemudian di akhir nya kamu bisa panggil method get..

Misal kamu ingin get data flight yang memiliki status active, maka query nya adalah seperti berikut:

use App\Models\Flight;

$data = Flight::where('status','active')->get();

foreach ($data as $flight) {
    echo $flight->name;
}

Maka isi dari variable data di atas adalah data flight yang status nya active.

7.3 Method Chunk

Kalo kamu menggunakan method all atau method get untuk narik data ribuan atau bahkan belasan ribu, kemungkinan server kamu akan kehabisan memori..

Nah untuk mengatasi nya, di laravel terdapat method chunk, apa sih itu?? singkat nya begini..

Misal ketika kamu nge get data sebanyak 10 ribu, maka kamu bisa membagi nya atau mengelompokkan nya per 1000 data atau lebih..

Kalau dari 10 ribu kamu bagi menjadi per 1000, maka sistem hanya perlu get data 10 kali kan?? tiap tarikan nya akan di get per seribu record, sampai batasan maksimal semua data tertarik..

Bayangkan jika kamu langsung menggunakan method get atau all, maka sistem akan langsung narik data sebanyak 10 ribu record, ini pasti akan membuat sistem menjadi sangat berat..

untuk contoh nya adalah sebagai berikut:

Flight::orderBy('id')->chunk(200, function ($flights) {
    foreach ($flights as $flight) {
        //
    }
});

Diatas anggap aja table flight punya data 1000 record, ingin kamu tarik semua datanya tapi dengan menggunakan method chunk yang kamu bagi per 200 record, maka sistem hanya perlu menarik nya 5 kali kan?

Tapi nanti didalam method chunk nya, kamu perlu ngeforeach lagi atau memperoses nya lagi 200 data yang sudah ditarik, untuk bentuk proses nya bisa kamu sesuaikan sendiri..

Oh iya, syarat untuk menggunakan method chunk ini harus ada method orderBy nya yaa.. jadi harus kamu urutkan berdasarkan kolom tertentu secara ascending atau descending..

Mimin sendiri juga sudah membuatkan artikel tersendiri khusus untuk membahas chunk saja, silahkan buka: Cara Get Big Data pada Laravel dengan Chunk..

7.4 Get Single Data

Kalo tadi method all dan method get digunakan untuk menarik banyak data, kali ini kita akan coba narik data secara single row..

Maksudnya adalah narik data 1 baris aja, atau 1 record aja, kita bisa menggunakan method first atau method find..

Apa beda nya dengan get/all? get/all harus kita foreach dulu untuk dapat memanggil object nya, tapi kalo pake first/find bisa langsung kita panggil object nya tanpa harus kita foreach.. Sebagai contoh:

$flight = Flight::where('id', 1)->first();

Diatas kita narik data flight yang id nya 1 menggunakan method first, dimana kalo kita mau manggil object name nya bisa langsung seperti ini: $flight->name; tanpa harus nge foreach terlebih dahulu..

atau temen-temen bisa juga menggunakan method find..

$flight = Flight::find(1); => sama seperti => $flight = Flight::where('id', 1)->first();

7.5 FirstOrFail

Ketika kita menggunakan method first atau find, kemudian data yang kita cari tidak ada, maka sistem akan memunculkan error..

Pesan error nya biasanya adalah trying to get property of non object..

Ini dikarenakan object yang kita tampilkan tidak ada datanya..

Nah untuk mengatasi nya, kamu bisa menggunakan method firstOrFail.. Jadi ketika data yang di tarik tidak ada, sistem tidak akan memunculkan pesan error, tapi mengarahkan nya ke halaman 404 Not Found..

Sebagai contoh:

$flight = Flight::where('id', 3)->firstOrFail();

7.6 First Or Create

Sesuai nama nya yaa.. get first or create..

Jadi ketika kamu narik single data menggunakan method first, ternyata data tersebut tidak ada.. kamu bisa mengalihkan nya dengan langsung membuat data baru menggunakan method firstOrCreate, sebagai contoh:

$flight = Flight::where('id',3)->firstOrCreate([
    'name' => 'London to Paris',
    'status' => 'active'
]);

Diatas kita mau get data dari table flight yang id nya 3, tapi kalo ternyata data tersebut tidak ada, maka sistem akan langsung create data baru dengan value yang sudah ditentukan seperti diatas..

8. Insert Data

Untuk insert data di laravel, sebetulnya ada beberapa cara, bisa kalian gunakan sesuai keinginan kalian, kita coba cek satu persatu yaa..

8.1. Cara 1

Untuk cara pertama ini, cukup mudah yaa.. kalian cukup use namespace model nya di awal file controller.. kemudian buat new instance model nya..

Tentukan atribut dan nilai nyaa.. terakhir kamu tinggal panggil method save untuk menyimpan data nya.

Sebagai contoh:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\Flight;
use Illuminate\Http\Request;

class FlightController extends Controller
{
    /**
     * Store a new flight in the database.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        // Validate the request...

        $flight = new Flight;

        $flight->name = $request->name;
$flight->status = $request->status; $flight->save(); } }

Di atas kita membuat instance baru pada model Flight..

kemudian menentukan atribut name yang nilai nya di ambil dari $request->name.. dan juga atribut status yang di ambil dari $request->status..

Kemudian terakhir kita simpan data nya dengan menggunakan method save..

Oh iya, dengan cara ini, field created_at dan updated_at akan terisi secara otomatis sesuai dengan waktu pada saat terjadi nya penyimpanan data..

Mudah kan?

8.2. Cara 2 dengan methode create

Jika kamu tidak mau cape-cape mendefinisikan banyak atribut beserta nilai nya, kamu bisa menggunakan method create..

Dengan cara ini, kamu bisa memasukkan nilai dari suat atribut dengan nilai array, sebagai contoh:

use App\Models\Flight;

$flight = Flight::create([
    'name' => 'London to Paris',
    'status' => 'active
]);

Atau kamu juga bisa menyimpan nya terlebih dahulu kedalam variable array, baru kemudian kamu masukkan kedalam method create, sebagai contoh:

use App\Models\Flight;

$data = ['name'=>'Rifai','status'=>'active'];

$flight = Flight::create($data);

Dengan methode ini, field created_at dan updated_at juga akan terisi secara otomatis sesuai dengan waktu penginputan..

Oh iyaa, syarat untuk menggunakan ini, kamu harus menentukan terlebih dahulu property guarded atau property fillable pada model kamu, jadi kamu harus men define atribut2 apa saja yang boleh diisi pada property fillable didalam model kamu..

Sebagai contoh:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = ['name','status'];
}

Kalo misalkan kolom di table kamu ada banyak, bisa sampai puluhan, tapi kamu ga mau capek-capek nge define property fillable, kamu bisa menggunakan property guarded, sebagai contoh:

/**
 * The attributes that aren't mass assignable.
 *
 * @var array
 */
protected $guarded = [];

Jika kamu mengosongkan isi dari property guarded, maka sama saja kamu mengizinkan smua kolom untuk dapat di insert..

8.3. Cara 3, Method Insert

Untuk cara ketiga ini sebetulnya sama seperti pada method create, beda nya kalo menggunakan method insert ini, kolom created_at dan updated_at nya tidak terisi secara otomatis..

Sebagai contoh:

use App\Models\Flight;

$flight = Flight::insert([
    'name' => 'London to Paris',
    'status' => 'active'
]);

Kalo kamu menggunakan method insert tapi ingin kolom created_at dan updated_at nya tetap ada nilai nya, kamu bisa define secara manual, sebagai contoh:

use App\Models\Flight;

$flight = Flight::insert([
    'name' => 'London to Paris',
    'status' => 'active',
    'created_at' => date('Y-m-d H:i:s'),
    'updated_at' => date('Y-m-d H:i:s')
]);

8.4. InsertGetId, cara mendapatkan id dari data yang terakhir di insert

Terkadang ketika kita sedang melakukan aksi insert data ke suatu database, kita ingin nge get id dari si data yang baru saja kita insert, untuk bisa melakukan hal tersebut, kita dapat menggunakan method insertGetId, sebagai contoh:

use App\Models\Flight;

$flight_id = Flight::insertGetId([
    'name' => 'London to Paris',
    'status' => 'active'
]);

echo $flight_id;

Diatas kita menggunakan method insertGetId untuk menyimpan data ke dalam table flight, kemudian menyimpan response nya ke dalam variabel flight_id..

Nah nanti ketika variabel flight_id kita print, maka hasilnya ada id dari data yang sudah kita insert sebelum nya..

8.5. Multiple insert dengan method insert

Salah satu kelebihan dari methode insert yaitu dapat melakukan insert data sekaligus dalam jumlah yang banyak..

Itulah mengapa method insert ini sering saya gunakan dibandingkan dengan method2 yang lain nya..

Untuk dapat melakukan multiple insert, kalian cukup menaruh atribut dan value nya kedalam multiple array..

Sebagai contoh, kita ingin memasukkan tiga data sekaligus kedalam table flight:

use App\Models\Flight;

$data = [
            ['name'=>'Fadly','status'=>'active'],
            ['name'=>'Rifai','status'=>'active'],
            ['name'=>'Shafa','status'=>'active'],
        ]


$flight = Flight::insert($data);

Diatas kita melakukan insert 3 data secara sekaligus kedalam table flight..

Cara ini akan sangat-sangat menghemat memori server kamu, bayangkan aja jika kamu ingin memasukkan 100 data..

Jika kamu memasukkan data nya satu per satu dengan method create atau method insert biasa, maka pasti server kamu akan kehabisan memori..

Kalo kamu menggunakan cara di atas, memasukkan data nya secara sekaligus dengan cara menampung nya terlebih dahulu kedalam variabel multiple arrays.. Maka itu akan lebih menghemat memori server kamu..

9. Update Data

Untuk update data pada eloquent, cara nya ga beda jauh seperti insert data, hampir-hampir mirip, hanya saja kita perlu menambah parameter sebagai patokan update data nya..

Untuk update data juga terdapat beberapa cara, kita coba jabarkan satu persatu ya..

9.1. Cara pertama

Untuk cara pertama ini, kamu menggunakan method save, sebagai contoh:

use App\Models\Flight;

$flight = Flight::find(1);

$flight->name = 'Paris to London';

$flight->save();

Diatas kita menggunakan method find untuk mencari id mana yang data nya akan di update..

atau jika kamu tidak ingin menggunakan method find, kamu juga bisa menggunakan method first untuk mencari parameter patokan update data nya..

use App\Models\Flight;

$flight = Flight::where('name','paris')->where('status','active')->first();

$flight->name = 'Paris to London';

$flight->save();

9.2. Cara kedua dengan Mass Assignment

Untuk cara kedua ini lebih sering saya gunakan ketimbang cara pertama, karena menurut saya lebih simple..

Untuk contoh nya:

Flight::where('active', 1)
      ->where('destination', 'San Diego')
      ->update(['delayed' => 1]);

9.3. Update Or Create

Terkadang kita menemukan kondisi dimana ketika kita ingin melakukan update data, kemudian data yang di cari tersebut tidak ada, maka kita akan membuat nya dengan data yang baru..

Biasanya kita menggunakan query yang seperti ini:

$cek = Flight::where('id',1)->count();

        if($cek > 0){
            Flight::where('id',1)->update(['name'=>'jakarta','status'=>'active']);
        }else{
            Flight::insert(['name'=>'jakarta','status'=>'active']);
        }

Pertama kita cek terlebih dahulu nih, data flight yang id 1 ada atau tidak dengan menggunakan method count..

Kalo ternyata isi dari variabel cek lebih dari 0, alias data nya ada, maka kita melakukan query update..

Tapi jika tidak, kita akan melakukan query insert data..

Sebetulnya ga ada yang salah dengan query di atas, tapi agak rumit dan boros kan??

Nah di laravel kita bisa membuat hal itu menjadi sangat singkat, caranya dengan menggunakan methode updateOrCreate..

Sebagai contoh:

$flight = Flight::updateOrCreate(
    ['id' => 1],
    ['name' => 'Jakarta', 'status' => 'active']
);

Syarat untuk menggunakan method updateOrCreate ini yaitu kita harus memberikan 2 argument array di dalam method nya..

Array pertama adalah untuk kondisi parameter nya, atau kondisi data mana yang akan kita update..

Kemudian Array kedua adalah atribut dan value nya yang akan kita update atau kita create..

10. Delete Data

Di eloquent, untuk menghapus data juga sangat-sangat mudah, terdapat beberapa cara, teman-teman bisa bebas untuk menggunakan cara yang apa saja..

10.1. Cara pertama

Cara pertama ini dengan menggunakan methode delete

Sebagai contoh:

use App\Models\Flight;

$flight = Flight::find(1);

$flight->delete();

10.2. Cara Kedua

Cara kedua ini menggunakan method destroy..

Sebagai contoh:

Flight::destroy(1);

Di atas, kita bisa lihat bahwa didalam method destroy terdapat sebuah parameter, parameter tersebut adalah value dari kolom primary key nya table flight, kalo yg jadi primary key ny adalah kolom ID, maka angka 1 di atas adalah value dari kolom id..

Yang jika diartikan berarti kita menghapus data flight yang nilai id nya adalah 1..

10.3. Truncate Data

Kalo kamu ingin menghapus seluruh data yang ada pada suatu table, kamu bisa menggunakan method truncate, sebagai contoh:

Flight::truncate();

10.4. Soft Deletes

SoftDeletes adalah kita menghapus data, tapi sebetulnya tidak benar-benar dihapus dari database..

Fitur ini juga sudah di dukung oleh eloquent, dan cara penggunaan nya pun juga sangat mudah..

Tapi karena butuh pembahasan yang panjang dan mendetail, maka mimin sudah membuatkan artikel tersendiri khusus untuk membahas soft delete..

Silahkan kalian buka: Cara menggunakan Soft Delete pada Laravel..

11. Global Where Pada Laravel

Terkadang dalam suatu kondisi tertentu, kita perlu memanggil suatu query yang mana query tersebut wajib selalu kita panggil..

Misalkan anggap saja kita ingin memanggil data karyawan yang status nya aktif, dan kondisi tersebut akan selalu kita pakai, maka pada setiap kali kita melakukan penulisan query, akan selalu seperti berikut:

....
Karyawan::where('is_active',1)->get()
....

Jika memang kondisi nya sudah paten, akan selalu memanggil yang status nya aktif saja, maka kita bisa membuat global where pada model Karyawan nya..

Hal ini bertujuan agar kita tidak menulis query where is_active=1 nya terus menerus..

Mimin sendiri sudah membuatkan tutorial nya, silahkan buka: Membuat Global Where pada Eloquent Laravel..

12. Mudah nya filter tanggal dengan Eloquent

Dengan eloquent kita bisa dengan filter data berdasarkan tanggal tertentu, atau berdasarkan periode tertentu..

Untuk contoh kasus dan kodingan nya bisa kalian lihat disini : 5 Cara Filter Tanggal di Laravel..

13. Mempelajari Scope Pada Laravel

Dengan scope kita tidak perlu menulis query yang sama berulang-ulang, jadi kita hanya perlu menulis kondisi nya 1 kali, tapi bisa kita gunakan berkali-kali dibanyak query..

Contoh nya misalkan kita ingin get data product yang status nya aktif saja, maka biasanya kita akan menulis query seperti berikut:

....
Product::where('is_active',1)->get();
....

Bayangkan jika ternyata ada 20 query yang mengharuskan kita untuk get data product, maka kita perlu mengulang query tersebut sebanyak 20 kali..

Jika menggunakan scope, kalian hanya perlu menulisnya seperti berikut:

....
Product::active()->get();
....

Lebih simple kan?

Untuk tutorial / panduan lebih jelas nya, bisa kalian buka halaman berikut: Mempelajari Laravel Scope Untuk Mencegah Penulisan Query yang sama berulang-ulang..

Penutup..

Mungkin itu aja artikel tentang eloquent dari saya, untuk studi kasus nya akan saya buatkan pembahasan tersendiri..

Nanti dari studi kasus tersebut kita akan belajar CRUD dengan eloquent pada Laravel..

Terima kasih, semoga bermanfaat.

Support Us

Jika artikel ini bermanfaat untuk kamu, membantu menyelesaikan masalah yang sedang kamu hadapi, kamu juga bisa dukung kami dengan mengunjungi halaman berikut: https://saweria.co/sangcahayaid

Terima kasih..

Leave a Reply

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

%d bloggers like this: