Пакет Laravel для создания и проверки универсального уникального идентификатора (UUID) в соответствии со стандартом RFC 4122. Встроена поддержка UUID версий 1, 3, 4 и 5.
Laravel-uuid теперь готов для Laravel 8. Он имеет те же требования, что означает PHP 7.3 или PHP 8. Автоматическое обнаружение пакетов Laravel включено, и теперь вы можете использовать проверку UUID. Примеры проверки приведены ниже и в тестах.
Для более старых версий Laravel или PHP используйте более старые версии; см. ниже...
Laravel-uuid теперь переработан для Laravel 5.5. Он имеет те же требования, что означает PHP 7. Автоматическое обнаружение пакетов Laravel включено, и теперь вы можете использовать проверку UUID. Примеры проверки приведены ниже и в тестах.
Ларавел 5.0, 5.1, 5.2, 5.3 и 5.4? используйте версию 2
Ларавел 4.*? используйте версию 1
В Laravel 5.5 laravel-uuid будет установлен с помощью новой функции обнаружения пакетов, поэтому вам нужно только добавить пакет в файл композитора.json.
композитору требуется "webpatser/laravel-uuid:^3.0"
после установки вы должны увидеть
Обнаруженный пакет: webpatser/laravel-uuid
и ты готов идти
Чтобы быстро сгенерировать UUID, просто выполните
Uuid::генерировать()
Это создаст object
Uuid версии 1 со случайным MAC-адресом.
Чтобы вывести сгенерированный UUID, приведите его к строке
(строка) Uuid::generate()
или
Uuid::generate()->строка
Создайте UUID версии 1, основанный на времени. Вы можете установить дополнительный узел на MAC-адрес. Если он не указан, он будет генерировать случайный MAC-адрес.
Uuid::generate(1,'00:11:22:33:44:55');
Создайте версию 3 на основе имени с использованием хеширования MD5 и UUID.
Uuid::generate(3,'test', Uuid::NS_DNS);
Создайте действительно случайный UUID версии 4.
Uuid::генерировать(4);
Создайте версию 5 на основе имени с использованием хеширования SHA-1 и UUID.
Uuid::generate(5,'test', Uuid::NS_DNS);
Чтобы импортировать UUID
$uuid = Uuid::import('d3d29d70-1d25-11e3-8591-034165a3a613');
Извлеките время для UUID, основанного на времени (версия 1).
$uuid = Uuid::generate(1);dd($uuid->time);
Извлеките версию UUID
$uuid = Uuid::generate(4);dd($uuid->version);
Если вы хотите, чтобы UUID волшебным образом генерировался в ваших моделях Laravel, просто добавьте этот метод загрузки в свою модель.
/** * Настройка перехватчиков событий модели */public static function boot() {parent::boot();self::creating(function ($model) {$model->uuid = (string) Uuid::generate(4); }); }
Это приведет к созданию UUID версии 4 при создании новой записи.
Если вы хотите использовать UUID в URL-адресах вместо первичного ключа, вы можете добавить его в свою модель (где «uuid» — это имя столбца для хранения UUID).
/** * Получите ключ маршрута для модели. * * @return string */public function getRouteKeyName() {вернуть 'uuid'; }
Когда вы внедряете модель в методы контроллера ресурсов, вы получаете правильную запись.
редактирование общедоступной функции (модель $model) { return view('someview.edit')->with(['model' => $model, ]); }
Просто используйте его, как и любой другой валидатор Laravel.
'uuid-field' => 'uuid'
Или создайте валидатор с нуля. В примере проверен объект Uuid. Вы также можете проверить строки $uuid->string
, URN $uuid->urn
или двоичное значение $uuid->bytes
$uuid = Uuid::generate();$validator = Validator::make(['uuid' => $uuid], ['uuid' => 'uuid']);dd($validator->passes()) ;
Полную информацию о спецификации UUID можно найти по адресу http://tools.ietf.org/html/rfc4122.