もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

laravel-permissionで関連テーブルのprimary keyをuuidにしたい

はじめに

こんばんは。

laravel-permissionを使用する際に専用のマイグレーションを実行すると思いますが、その各テーブルのprimary keyを通常のbig integerからuuidに変更する対応をしたので備忘録です。

本題

対応は以下を見れば大丈夫。

spatie.be

基本的に $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になります。

終わりに

簡単な話になりましたが、現場からは、以上です。