Laravel-Paket zur Generierung und Validierung einer universell eindeutigen Kennung (UUID) gemäß dem RFC 4122-Standard. Unterstützung für UUIDs der Versionen 1, 3, 4 und 5 ist integriert.
Laravel-uuid ist jetzt für Laravel 8 bereit. Es hat die gleichen Anforderungen, also PHP 7.3 oder PHP 8. Die automatische Erkennung von Laravel-Paketen ist aktiviert und Sie können jetzt die UUID-Validierung verwenden. Validierungsbeispiele finden Sie unten und in den Tests.
Für ältere Laravel- oder PHP-Versionen verwenden Sie ältere Versionen; siehe unten...
Laravel-uuid wurde jetzt für Laravel 5.5 überarbeitet. Es gelten die gleichen Anforderungen, das heißt PHP 7. Die automatische Erkennung des Laravel-Pakets ist aktiviert und Sie können jetzt die UUID-Validierung verwenden. Validierungsbeispiele finden Sie unten und in den Tests.
Laravel 5.0, 5.1, 5.2, 5.3 und 5.4? Verwenden Sie Version 2
Laravel 4.*? Verwenden Sie Version 1
In Laravel 5.5 wird laravel-uuid über die neue Paketerkennungsfunktion installiert, sodass Sie das Paket nur zu Ihrer Composer.json-Datei hinzufügen müssen
Komponist benötigt „webpatser/laravel-uuid:^3.0“
Nach der Installation sollten Sie sehen
Entdecktes Paket: webpatser/laravel-uuid
und schon kann es losgehen
Um schnell eine UUID zu generieren, tun Sie es einfach
Uuid::generate()
Dadurch wird ein Uuid object
der Version 1 mit einer zufällig generierten MAC-Adresse generiert.
Um die generierte UUID wiederzugeben, wandeln Sie sie in eine Zeichenfolge um
(string) Uuid::generate()
oder
Uuid::generate()->string
Generieren Sie eine zeitbasierte UUID der Version 1. Sie können den optionalen Knoten auf die MAC-Adresse einstellen. Wenn keine Angabe erfolgt, wird eine zufällige MAC-Adresse generiert.
Uuid::generate(1,'00:11:22:33:44:55');
Generieren Sie eine namensbasierte UUID der Version 3 mithilfe von MD5-Hashing
Uuid::generate(3,'test', Uuid::NS_DNS);
Generieren Sie eine wirklich zufällige UUID der Version 4
Uuid::generate(4);
Generieren Sie eine namensbasierte UUID der Version 5 mit SHA-1-Hashing
Uuid::generate(5,'test', Uuid::NS_DNS);
Um eine UUID zu importieren
$uuid = Uuid::import('d3d29d70-1d25-11e3-8591-034165a3a613');
Extrahieren Sie die Zeit für eine zeitbasierte UUID (Version 1)
$uuid = Uuid::generate(1);dd($uuid->time);
Extrahieren Sie die Version einer UUID
$uuid = Uuid::generate(4);dd($uuid->version);
Wenn Sie möchten, dass in Ihren Laravel-Modellen auf magische Weise eine UUID generiert wird, fügen Sie einfach diese Boot-Methode zu Ihrem Modell hinzu.
/** * Modellereignis-Hooks einrichten */public static function boot() {parent::boot();self::creating(function ($model) {$model->uuid = (string) Uuid::generate(4); }); }
Dadurch wird beim Erstellen eines neuen Datensatzes eine UUID der Version 4 generiert.
Wenn Sie die UUID in URLs anstelle des Primärschlüssels verwenden möchten, können Sie diese Ihrem Modell hinzufügen (wobei „uuid“ der Spaltenname zum Speichern der UUID ist).
/** * Den Routenschlüssel für das Modell abrufen. * * @return string */public function getRouteKeyName() {return 'uuid'; }
Wenn Sie das Modell in Ihre Ressourcen-Controller-Methoden einfügen, erhalten Sie den richtigen Datensatz
öffentliche Funktion bearbeiten (Modell $model) { return view('someview.edit')->with(['model' => $model, ]); }
Verwenden Sie es einfach wie jeden anderen Laravel-Validator.
'uuid-field' => 'uuid'
Oder erstellen Sie einen Validator von Grund auf. Im Beispiel wird ein UUID-Objekt validiert. Sie können auch Zeichenfolgen $uuid->string
, den URN $uuid->urn
oder den Binärwert $uuid->bytes
validieren
$uuid = Uuid::generate();$validator = Validator::make(['uuid' => $uuid], ['uuid' => 'uuid']);dd($validator->passes()) ;
Ausführliche Informationen zur UUID-Spezifikation finden Sie unter http://tools.ietf.org/html/rfc4122.