Генерация UUID в сидере Laravel
Иногда нужна строка, которая
с большой вероятностью не
повторится: токен, публичный
ключ, внешний идентификатор.
Str::random может
теоретически совпасть;
uuid строят по стандарту
и используют именно для
уникальности.
Метод uuid возвращает
объект UUID. Для вставки
в строковую колонку его
приводят к строке или
используют как строку в PHP:
<?php
(string) Str::uuid();
?>
Пример в сидере - поле
token или slug
с uuid вместо случайных букв:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
class DatabaseSeeder extends Seeder
{
public function run(): void
{
DB::table('posts')->insert([
'title' => Str::random(10),
'slug' => (string) Str::uuid(),
'text' => Str::random(50),
]);
}
}
?>
В цикле каждый вызов uuid
даст новое значение - удобно
для пачки записей без ручной
проверки на дубликаты slug.
Сделайте сидер, который добавит в базу посты с уникальными slug.