はじめに
こんばんは。
laravel-permissionを使用する際に専用のマイグレーションを実行すると思いますが、その各テーブルのprimary keyを通常のbig integerからuuidに変更する対応をしたので備忘録です。
本題
対応は以下を見れば大丈夫。
基本的に $this->bigIncrements
となっている部分を $this->uuid
となる感じです。
Model側は 他のModel同様に HasUuidsをuseするだけです。
Role.php
<?php namespace App\Models; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Spatie\Permission\Models\Role as BaseRole; class Role extends BaseRole { use HasUuids; }
Permission.php
<?php namespace App\Models; use Illuminate\Database\Eloquent\Concerns\HasUuids; use Spatie\Permission\Models\Permission as BasePermission; class Permission extends BasePermission { use HasUuids; }
これで各種テーブルのprimary key は uuidになります。
終わりに
簡単な話になりましたが、現場からは、以上です。