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.
37 lines
829 B
37 lines
829 B
1 year ago
|
<?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';
|
||
|
}
|
||
|
}
|