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.
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]);
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();
});
}
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.