You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
829 B
36 lines
829 B
<?php |
|
|
|
namespace App\Traits; |
|
|
|
use Illuminate\Support\Str; |
|
|
|
trait UUID |
|
{ |
|
protected static function boot() |
|
{ |
|
// Boot other traits on the Model |
|
parent::boot(); |
|
|
|
/** |
|
* Listen for the creating event on the user model. |
|
* Sets the 'id' to a UUID using Str::uuid() on the instance being created |
|
*/ |
|
static::creating(function ($model) { |
|
if ($model->getKey() === null) { |
|
$model->setAttribute($model->getKeyName(), Str::uuid()->toString()); |
|
} |
|
}); |
|
} |
|
|
|
// Tells the database not to auto-increment this field |
|
public function getIncrementing() |
|
{ |
|
return false; |
|
} |
|
|
|
// Helps the application specify the field type in the database |
|
public function getKeyType() |
|
{ |
|
return 'string'; |
|
} |
|
}
|
|
|