RFC 4122 標準に従ってユニバーサル一意識別子 (UUID) を生成および検証するための Laravel パッケージ。バージョン 1、3、4、および 5 の UUID のサポートが組み込まれています。
Laravel-uuid は Laravel 8 で使用できるようになりました。要件は同じなので、PHP 7.3 または PHP 8 を意味します。Laravel パッケージの自動検出が有効になり、UUID 検証を使用できるようになりました。検証例は以下とテスト内にあります。
古い Laravel または PHP バージョンの場合は、古いバージョンを使用してください。以下を参照してください...
Laravel-uuid は Laravel 5.5 用にリファクタリングされました。要件は同じなので、PHP 7 を意味します。Laravel パッケージの自動検出が有効になり、UUID 検証を使用できるようになりました。検証例は以下とテスト内にあります。
Laravel 5.0、5.1、5.2、5.3、5.4?バージョン2を使用してください
Laravel 4.*?バージョン1を使用してください
Laravel 5.5では、laravel-uuidは新しいパッケージ検出機能を介してインストールされるため、パッケージをcomposer.jsonファイルに追加するだけで済みます。
コンポーザーには「webpatser/laravel-uuid:^3.0」が必要です
インストール後に表示されるはずです
発見されたパッケージ: webpatser/laravel-uuid
準備は完了です
UUID をすばやく生成するには、次のようにします。
Uuid::generate()
これにより、ランダムに生成された MAC アドレスを持つバージョン 1 の Uuid object
が生成されます。
生成された UUID をエコーアウトするには、それを文字列にキャストします。
(文字列) Uuid::generate()
または
Uuid::generate()->文字列
バージョン 1、時間ベースの UUID を生成します。任意のノードにMACアドレスを設定できます。指定しない場合は、ランダムな MAC アドレスが生成されます。
Uuid::generate(1,'00:11:22:33:44:55');
バージョン 3、MD5 ハッシュ、UUID を使用した名前ベースの生成
Uuid::generate(3,'test', Uuid::NS_DNS);
バージョン 4、真にランダムな UUID を生成します
Uuid::generate(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);
Laravel モデルで UUID を魔法のように生成したい場合は、このブート メソッドをモデルに追加するだけです。
/** * モデルイベントフックのセットアップ */public static function boot() {parent::boot();self::creating(function ($model) {$model->uuid = (string) Uuid::generate(4); }); }
これにより、新しいレコードの作成時にバージョン 4 の UUID が生成されます。
URL で主キーの代わりに UUID を使用したい場合は、これをモデルに追加できます (「uuid」は UUID を格納する列の名前です)。
/** * モデルのルートキーを取得します。 * * @return string */public function getRouteKeyName() {return 'uuid'; }
リソース コントローラー メソッドにモデルを挿入すると、正しいレコードが取得されます。
パブリック関数編集(Model $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 を参照してください。