Media Pengembangan Web & App | by APPKEY

Pembuatan Website Laravel Tips dan Trik Laravel Eloquent untuk Programing yang Semakin...

Tips dan Trik Laravel Eloquent untuk Programing yang Semakin Mudah

-

Bagi Anda yang sudah sering menggunakan laravel, pasti sudah tidak asing lagi dengan Eloquent. Namun apakah Anda sudah memanfaatkannya semaksimal mungkin?

Pengertian Laravel Eloquent

Eloquent merupakan salah satu fitur yang dapat Anda manfaatkan untuk akses serta manipulasi data yang disimpan dalam manipulasi yang tersimpan dalam database dengan perintah yang lebih singkat serta mempercepat proses pembuatan CRUD dari database.

Eloquent pada Laravel memiliki fungsi-fungsi active record dan berbagai fungsi query sql dalam mengelola database. Dengan Eloquent, Anda juga dapat melakukan input data, edit, menampilkan, melakukan update serta membuat relasi tabel dengan sangat mudah. Eloquent juga dilengkapi berbagai fitur-fitur yang dapat membantu para developer.

Fitur-fitur yang ada pada Laravel Eloquent

laravel-tutorial-1

  1. Bundles, merupakan fitur yang memiliki sistem pengemasan modular dan tersedia di beragam aplikasi.
  2. Eloquent ORM, adalah penerapan PHP lanjutan menyediakan metode internal dari pola active record untuk mengatasi permasalahan pada hubungan objek berbasis data.
  3. Reverse routing, untuk mendefinisikan relasi antar link dan route.
  4. Restfull Controllers, untuk memisahkan logika dalam melayani.
  5. Class auto loading, untuk menyediakan loading otomatis pada class PHP.
  6. Migration, fitur yang menyediakan sistem kontrol untuk database.
  7. Unit testing, untuk deteksi dan pencegahan regresi.

Pada artikel kali ini secara spesifik kami membahas kegunaan tips dan trik pada Eloquent ORM. Fitur ini mungkin terlihat seperti mekanisme yang sederhana bagi Anda.

Namun, dibalik kesederhanaannya, Laravel Eloquent ternyata menyimpan berbagai fungsi-fungsi lainnya yang tidak Anda ketahui. Ada beberapa cara untuk Anda dapat mendapatkan Laravel Eloquent ini. Berikut beberapa trik Laravel Eloquent untuk Anda.

Artikel Terkait  Jago Membuat Auth Laravel: Tutorial Terlengkap | Seri Belajar Laravel

Tips dan Trik Laravel Eloquent

1. Increments dan Decrements

Biasanya programmer menggunakan kode berikut ini untuk melakukan Increments dan Decrements.

$article = Article::find($article_id);
$article->read_count++;
$article->save();
Anda dapat membuatnya dengan:
$article = Article::find($article_id);
$article->increment('read_count');
Atau
Article::find($article_id)->increment('read_count');
Article::find($article_id)->increment('read_count', 10); // +10
Product::find($produce_id)->decrement('stock'); // -12.

2. Metode X or Y

Eloquent memiliki banyak fungsi yang menggabungkan dua metode, seperti perintah berikut ini
a. ‘findOFail()’
Biasanya developer menggunakan kode seperti ini:
$user = User::find($id);
if (!$user) { abort (404); }

Sebaiknya gunakan seperti ini:
$user = User::findOrFail($id);’
b. ‘firstOrCreate()’:

Biasanya developer menggunakan kode seperti ini:

$user = User::where('email', $email)->first();
if (!$user) {
User::create([
'email' => $email
]);
}

Sebaiknya gunakan seperti ini:
$user = User::firstOrCreate(['email' => $email]);

3. Metode Model Boot

Pada Laravel Eloquent terdapat tempat yang bersifat magis dikenal dengan ‘boot()’ pada Wloquent model. Contoh penggunaan ini secaea kode:
class User extends Model
{
public static function boot()
{
parent::boot();
static::updating(function($model)
{
// do some logging
// override some property like $model->something = transform($something);
});
}
}

Anda mungkin salah satu contoh paling populer adalah menyetel beberapa nilai bidang pada saat membuat objek model. Misalkan Anda ingin membuat bidang UUID pada saat itu.
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->uuid = (string)Uuid::generate();
});
}

4. Hubungan antara kondisi dan ordering

Ini adalah kode yang umumnya dibuat untuk mendefinisikan hubungan dalam Eloquent.
public function users() {
return $this->hasMany('App\User');
}

Namun Anda juga dapat menambahkan where atau orderBy. Misal, jika ingin hubungan tertentu untuk beberapa jenis pengguna, juga diurutkan melalui email, Anda dapat melakukannya dengan perintah berikut ini:
public function approvedUsers() {
return $this->hasMany('App\User')->where('approved', 1)->orderBy('email');
}

5. Model Properties: timestamps, appends dan lainnya

Ada beberapa parameter dari sebuah model Eloquent dalam form dari suatu property dari kelas tersebut. Banyak orang membuatnya dengan berikut ini:
class User extends Model {
protected $table = 'users';
protected $fillable = ['email', 'password']; // which fields can be filled with User::create()
protected $dates = ['created_at', 'deleted_at']; // which fields will be Carbon-ized
protected $appends = ['field1', 'field2']; // additional values returned in JSON
}

Anda juga dapat membuatnya dengan:
protected $primaryKey = 'uuid'; // it doesn't have to be "id"
public $incrementing = false; // and it doesn't even have to be auto-incrementing!
protected $perPage = 25; // Yes, you can override pagination count PER MODEL (default 15)
const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at'; // Yes, even those names can be overridden
public $timestamps = false; // or even not used at all

6. Anda dapat menemukan beberapa entri sekaligus

Kita semua tahu cara benar adalah ‘find()’ seperti pada kode berikut:
$user = User::find(1);

Namun kita dapat menemukan beberapa entri atau ID sekaligus dengan menggunakan array:
$users = User::find([1,2,3]);

7. WhereX

Anda dapat mengubah kode berikut ini:
$users = User::where('approved', 1)->get();

Menjadi seperti ini:
$users = User::whereApproved(1)->get();

Memang benar Anda dapat mengubah nama dari setiap bidang dan dapat menambahkannya sebagai akhiran “where”. Selain itu, terdapat beberapa metode yang ditentukan sebelumnya di Eloquent terkait dengan tanggal/waktu.
User::whereDate('created_at', date('Y-m-d'));
User::whereDay('created_at', date('d'));
User::whereMonth('created_at', date('m'));
User::whereYear('created_at', date('Y'));

8 Urutan berdasarkan hubungan

Trik ini adalah trik yang cukup kompleks. Trik ini digunakan jika Anda memiliki forum dengan berbagai topik namun ingin membuat urutan berdasarkan post terakhir. Persyaratan yang cukup umum di forum dengan topik yang terakhir diperbarui di atas. Pertama, jelaskan hubungan terpisah untuk postingan terbaru tentang topik tersebut:
fungsi publik latestPost ()
{
return $ this-> hasOne (\ App \ Post :: class) -> latest ();
}

Kemudian pada controller Anda dapat membuatnya menjadi:

$users = Topic::with('latestPost')->get()->sortByDesc('latestPost.created_at');

9. Eloquent::when() – no more if- else’s

Banyak orang membuat kueri kondisional dengan “if-else” sebagai berikut ini:

if (request('filter_by') == 'likes') {
$query->where('likes', '>', request('likes_amount', 0));
}
if (request('filter_by') == 'date') {
$query->orderBy('created_at', request('ordering_rule', 'desc'));
}

Ada cara yang lebih baik untuk menggunakan ‘when()’

$query = Author::query();
$query->when(request('filter_by') == 'likes', function ($q) {
return $q->where('likes', '>', request('likes_amount', 0));
});
$query->when(request('filter_by') == 'date', function ($q) {
return $q->orderBy('created_at', request('ordering_rule', 'desc'));
});

Anda juga dapat membuatnya seperti berikut ini jika dirasa kode dirasa terlalu panjang.

$query = User::query();
$query->when(request('role', false), function ($q, $role) {
return $q->where('role_id', $role);
});
$authors = $query->get();

Artikel Terkait  Apa Itu CSS Selector? Mengenal 20 CSS Selector yang Wajib Anda Kuasai

10. Model Default dari BelongsTo

Hal ini berguna untuk Anda yang memiliki postingan milik penulis. Anda dapat menggunakan kode sebagai berikut:

{{ $post->author->name }}

Tapi bagaimana jika penulis dihapus, atau tidak disetel karena beberapa alasan? Anda akan mendapatkan error, seperti “property of non-object”. Anda dapat mencegahnya dengan:

{{ $post->author->name ?? '' }}

Anda juga dapat menbuatnya dalam tingkat hubungan Eloquent

public function author()
{
return $this->belongsTo('App\Author')->withDefault();
}

Pada contoh tersebut hubungan ‘author()’ akan kembali pada model kosong ‘App\Author’ jika penulis tidak melampirkannya pada post. Selanjutnya, kita dapat menetapkan nilai properti default ke model default tersebut.

public function author()
{
return $this->belongsTo('App\Author')->withDefault([
'name' => 'Guest Author'
]);
}

11. Mengurutkan dengan Mutator

Jika Anda memiliki kode seperti ini:

function getFullNameAttribute()
{
return $this->attributes['first_name'] . ' ' . $this->attributes['last_name'];
}

Namun ketika Anda ingin mengurutkan berdasarjan ‘full_name’ namun hal tersebut tidak berhasil. Anda dapat melakukannya dengan kode berikut:

$clients = Client::get()->sortBy('full_name'); // works!

12. Pengurutan dengan global scope

Jika Anda ingin memiliki ‘User::all()’ lalu Anda selalu melakukan pengurutan dengan bidang ‘name’ maka Anda dapat menggunakan global scope.

protected static function boot()
{
parent::boot();
// Order by name ASC
static::addGlobalScope('order', function (Builder $builder) {
$builder->orderBy('name', 'asc');
});
}

13. Metode Raw Query

Pada beberapa waktu kita perlu menambahkan raw queries pada pernyataan Eloquents. Berikut contohnya:
// whereRaw
$orders = DB::table('orders')
->whereRaw('price > IF(state = "TX", ?, 100)', [200])
->get();
// havingRaw
Product::groupBy('category_id')->havingRaw('COUNT(*) > 1')->get();
// orderByRaw
User::where('created_at', '>', '2016-01-01')
->orderByRaw('(updated_at - created_at) desc')
->get();

14. Teknik Replicate, membuat salinan dari suatu baris

Berikut adalah cara untuk membuat salinan dari entri database:

$task = Tasks::find(1);
$newTask = $task->replicate();
$newTask->save();

15. Chunk(), metode untuk tabel besar

Berikut terkait dengan Collection untuk memproses kumpulan data yang lebih besar, Anda dapat memecahnya menjadi beberapa bagian.

Jika biasanya menggunakan kode seperti ini:

$users = User::all();
foreach ($users as $user) {
// ...

Anda dapat menbuatnya seperti ini:

User::chunk(100, function ($users) {
foreach ($users as $user) {
// ...
}
});

16. Membuat hal tambahan saat membuat model

Artisan comman pada umumnya:

php artisan make:model Company
Ada tiga flag yang berguna untuk menghasilkan file terkait ke model.

php artisan make:model Company –mcr

penjelasan kode ini adalah:

a. -m akan membuat migrasi file (migration file)l.
b. –c akan membuayt sebuah controller.
c. –r akan mengindikasikan controller harus resourceful.

Artikel Terkait  10 Web Framework Golang Terbaik di 2021 yang Bisa Anda Coba!

17. Mengesampingkan update_at ketika menyimpan

Metode ‘->save()’ dapat menerima parameter. Sebagai hasilnya Anda dapat memerintahkannya untuk mengabaikan ‘update_at’ yang secara default berfungsi untuk memenuhinya dengan timestamp terbaru.
$product = Product::find($id);
$product->updated_at = '2019-01-01 10:00:00';
$product->save(['timestamps' => false]);

18. Hasil dari ‘update()’

Kode ini dikembalikan dan menghasilkan affected row. Jawabannya adalah baris yang terpengaruh. Jadi jika Anda perlu memeriksa berapa banyak baris yang terpengaruh, Anda tidak perlu memanggil yang lain – metode update().

$result = $products->whereNull('category_id')->update(['category_id' => 2]);

19. Mengubah tanda kurung menjadi Eqoluent query

Anda dapat memiliki dan-atau mencampur dalam kueri SQL Anda, seperti ini:

... WHERE (gender = 'Male' and age >= 18) or (gender = 'Female' and age >= 65)

Cara yang salah saat melakukan translate pada Eloquent:

$q->where('gender', 'Male');
$q->orWhere('age', '>=', 18);
$q->where('gender', 'Female');
$q->orWhere('age', '>=', 65);

Maka urutannya akan salah. Urutan yang benar akan lebih kompleks dan Anda akan mendapatkan:

$q->where(function ($query) {
$query->where('gender', 'Male')
->where('age', '>=', 18);
})->orWhere(function($query) {
$query->where('gender', 'Female')
->where('age', '>=', 65);
})

20. orWhere denan parameter ganda

Anda dapat melewati array dari parameters yaitu ‘orWhere()’ yang mana umumnya seperti ini:

$q->where('a', 1);
$q->orWhere('b', 2);
$q->orWhere('c', 3);

Anda dapat membuatnya seperti ini:

$q->where('a', 1);
$q->orWhere(['b' => 2, 'c' => 3]);

Demikianlah tips dan trik Laravel Eloquent yang dapat memudahkan Anda saat menggunakan Laravel. Selamat mencoba.


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang Website, Aplikasi, Desain, Video dan API langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Kategori

Blog Post Ranking 10

Rekomendasi 10 Aplikasi Pembuat Animasi 3D Terbaik. Ayo Cek!

Apakah Anda bercita-cita untuk menjadi seorang animator profesional? Belajar membuat animasi kini sudah menjadi hal mudah yang bisa dilakukan...

Cara Mudah Menambahkan Lokasi Alamat Bisnis Anda di Google Maps

Saat ingin hunting tempat makan atau tempat nongkrong terbaru, tak jarang beberapa dari Anda biasanya mendapatkan informasi terkini melalui...

Proses Komunikasi: Encoding dan Decoding

Jika kita dapat melihat percakapan antar komputer, mungkin akan terlihat seperti ini: "010110111011101011010010110". Bahasa ini disebut dengan biner, encoding...

Metadata Adalah? Fungsi dan Jenis-Jenis Metadata

Pernah mendengar istilah metadata? Mungkin, kita sering mendengar istilah metadata. Tetapi, banyak dari kita yang belum tahu arti dari metadata...

Pengertian Internet & Dampak Positif dan Negatif Internet

Internet mungkin bukan sesuatu yang asing lagi, sebab semua kalangan pasti tahu apa itu internet. Hanya saja jika ditanya...

Membuat Aplikasi di Playstore dengan Mudah

Membuat aplikasi di Playstore bisa Anda lakukan dengan mudah. Terdapat beberapa situs yang bisa membantu Anda untuk membuat aplikasi...

Domain Google? Apa Bedanya Dengan Domain Biasa?

Saat memutuskan untuk membuat website menjadi salah satu bentuk media digital marketing Anda dalam bersaing di zaman digital ini,...

7 Aplikasi Membuat Aplikasi Android Secara Offline

Aplikasi membuat aplikasi android saat ini banyak dicari penekun IT untuk membuat aplikasi Android secara offline tanpa harus menggunakan...

10 Aplikasi Coding Android Terbaik

Ketersediaan aplikasi coding Android memang banyak dicari oleh orang-orang yang sedang atau akan memulai untuk membuat aplikasi android. Jika...

Looping Adalah Algoritma Perulangan: Berikut Contohnya

Jika anda sudah mendalami atau sedang mendalami dunia pemrograman terdapat sebuah konsep yang dapat memudahkan anda dalam menyusun struktur...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya