Laravel 套件根據 RFC 4122 標準產生並驗證通用唯一識別碼 (UUID)。內建對版本 1、3、4 和 5 UUID 的支援。
Laravel-uuid 現在已為 Laravel 8 做好準備。驗證範例如下和測試中。
對於舊的 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::生成()
這將產生一個帶有隨機產生的 MAC 位址的版本 1 Uuid object
。
若要回顯產生的 UUID,請將其轉換為字串
(字串)Uuid::generate()
或者
Uuid::generate()->字串
產生版本 1、基於時間的 UUID。您可以將可選節點設定為 MAC 位址。如果未提供,它將產生一個隨機 MAC 位址。
Uuid::生成(1,'00:11:22:33:44:55');
使用 MD5 哈希、UUID 產生基於名稱的版本 3
Uuid::生成(3,'測試', Uuid::NS_DNS);
產生版本 4、真正隨機的 UUID
Uuid::生成(4);
使用 SHA-1 哈希、UUID 產生基於名稱的版本 5
Uuid::生成(5,'測試', Uuid::NS_DNS);
導入 UUID
$uuid = Uuid::import('d3d29d70-1d25-11e3-8591-034165a3a613');
提取基於時間的 UUID 的時間(版本 1)
$uuid = Uuid::generate(1);dd($uuid->時間);
提取 UUID 的版本
$uuid = Uuid::generate(4);dd($uuid->版本);
如果您希望在 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() {返回'uuid'; }
當您將模型注入資源控制器方法時,您將獲得正確的記錄
公共函數編輯(模型$模型) { 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。