はじめに
こんばんは。
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になります。
終わりに
簡単な話になりましたが、現場からは、以上です。