Uuid.php
1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
namespace App\Traits;
use Illuminate\Support\Str;
trait Uuid
{
/*
|----------------------------------------------------------------------------------------------
| perlu definisikan alias jika di model ada method "boot" juga, contoh alias didalam class:
|----------------------------------------------------------------------------------------------
| class Nama extends Model
| {
| use SoftDeletes;
| use Uuid {
| boot as uuidBoot;
| }
| }
|----------------------------------------------------------------------------------------------
| dan panggil dalam boot model, contoh pemanggilan :
|----------------------------------------------------------------------------------------------
| public static function boot()
| {
| parent::boot();
| static::uuidBoot();
| }
|----------------------------------------------------------------------------------------------
*/
protected static function boot()
{
parent::boot();
static::creating(function ($model) {
try {
$model->id = $model->id == '' ? (string) Str::Uuid():$model->id;
} catch (UnsatisfiedDependencyException $e) {
abort(500, $e->getMessage());
}
});
}
}