Matawebsite Promo Lebaran 2022

Laravel Eloquent Tips and Trik - Part 1

date 18 Oct 2021
date Lev Yasin
date 644
date Web Programming
Laravel Eloquent Tips and Trik - Part 1

Eloquent ORM merupakan mekanisme yang sederhana, tetapi ada banyak fungsi semi-tersembunyi dan cara yang kurang dikenal untuk mencapai lebih banyak dengannya. Pada artikel ini, saya akan menunjukkan beberapa trik.

  1. Increments and Decrements
    Alih-alih ini:

    $article = Article::find($article_id);
    $article->read_count++;
    $article->save();

    Kamu bisa melakukan ini:

    $article = Article::find($article_id);
    $article->increment('read_count');

    Ini juga akan berfungsi:

    Article::find($article_id)->increment('read_count');
    Article::find($article_id)->increment('read_count', 10); // +10
    Product::find($produce_id)->decrement('stock'); // -1
  2.  

    XorY methods

     

    Eloquent memiliki beberapa fungsi yang menggabungkan dua metode, seperti "tolong lakukan X, jika tidak lakukan Y".

    Contoh 1 – findOrFail():

    Dari pada:

    $user = User::find($id);
    if (!$user) { abort (404); }

    Melakukan hal ini:

    $user = User::findOrFail($id);

    Contoh 2 – firstOrCreate():

    Dari pada:

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

    Lakukan ini saja:

    $user = User::firstOrCreate(['email' => $email]);
  3.  

    Model boot() method

    Ada tempat ajaib yang disebut boot()dalam model Eloquent di mana Anda dapat mengganti perilaku default:

    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);
     });
    }
    }

    Mungkin salah satu contoh paling populer adalah menetapkan beberapa nilai bidang pada saat membuat objek model. Katakanlah Anda ingin membuat bidang UUID pada saat itu.

    public static function boot()
    {
     parent::boot();
     self::creating(function ($model) {
     $model->uuid = (string)Uuid::generate();
     });
    }
Matawebsite Promo
lev_yasin.png

Lev Yasin

Instruktur Web Programming Mataweb

Sangat tertarik dengan dunia Pemrograman Web & Mobile, saat ini fokus pada bagian Backend Web Developer, menggunakan PHP sebagai bahasa pemrograman utama, biasanya saya menggunakan Laravel.

Artikel Populer

Halo, ada yang bisa kami bantu?
Daftar Sekarang