Метод uuid
Метод uuid класса Str генерирует строку,
представляющую собой уникальный идентификатор UUID версии 4.
Этот идентификатор основан на случайных числах и гарантирует
уникальность с высокой вероятностью. Метод не принимает
никаких параметров и всегда возвращает строку в формате
'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx',
где x и y - шестнадцатеричные цифры.
Синтаксис
<?php
use Illuminate\Support\Str;
Str::uuid();
?>
Пример
Давайте сгенерируем UUID и выведем его на экран:
<?php
use Illuminate\Support\Str;
$res = Str::uuid();
echo $res;
?>
Результат выполнения кода:
"550e8400-e29b-41d4-a716-446655440000"
Пример
Давайте сгенерируем несколько UUID для использования в качестве уникальных ключей в массиве:
<?php
use Illuminate\Support\Str;
$keys = [];
for ($i = 0; $i < 3; $i++) {
$keys[] = Str::uuid();
}
print_r($keys);
?>
Результат выполнения кода:
[
"550e8400-e29b-41d4-a716-446655440000",
"6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"6ba7b811-9dad-11d1-80b4-00c04fd430c8"
]
Пример
Давайте создадим модель User с UUID в качестве первичного ключа:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
class User extends Model
{
public $incrementing = false;
protected $keyType = 'string';
protected static function boot()
{
parent::boot();
static::creating(function ($model) {
$model->id = Str::uuid();
});
}
}
?>
Результат выполнения кода при создании новой записи:
"User created with UUID: 550e8400-e29b-41d4-a716-446655440000"