2017-06-25 02:20:24 +08:00
|
|
|
<?php
|
|
|
|
|
2017-08-13 01:24:00 +08:00
|
|
|
namespace App\Models\Traits;
|
2017-06-25 02:20:24 +08:00
|
|
|
|
2017-08-24 23:51:47 +08:00
|
|
|
use Hashids\Hashids;
|
|
|
|
|
2017-06-25 02:20:24 +08:00
|
|
|
|
2017-12-13 02:43:58 +08:00
|
|
|
trait HashId
|
2017-06-25 02:20:24 +08:00
|
|
|
{
|
|
|
|
protected static function boot()
|
|
|
|
{
|
|
|
|
parent::boot();
|
|
|
|
|
2017-12-13 02:43:58 +08:00
|
|
|
static::creating(function ($model)
|
|
|
|
{
|
2017-06-25 02:20:24 +08:00
|
|
|
$key = $model->getKeyName();
|
2017-08-24 23:51:47 +08:00
|
|
|
|
2017-06-25 02:20:24 +08:00
|
|
|
if (empty($model->{$key})) {
|
2017-12-13 03:26:08 +08:00
|
|
|
$hashids = new Hashids('', 12);
|
2017-09-08 04:35:17 +08:00
|
|
|
$mt = str_replace('.', '', microtime(true));
|
|
|
|
$id = $hashids->encode($mt);
|
2017-12-13 02:43:58 +08:00
|
|
|
|
2017-08-24 23:51:47 +08:00
|
|
|
$model->{$key} = $id;
|
2017-06-25 02:20:24 +08:00
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|