【Laravel9以降】主キーをUUIDにする方法
Laravel9以降からはLaravelが主キーをUUIDにする方法を用意してくれています。
簡単にできるのでその方法を紹介します。
やり方
例えば、Usersテーブルの主キー(id)をUUIDにしたい場合、
1.Usersテーブルのマイグレーションファイルの「$table->id()」を削除して、代わりに「$table->uuid('id’)」を追加します。
// 省略
public function up(): void
{
Schema::create('users', function (Blueprint $table) {
// $table->id(); ←削除
$table->uuid('id'); // ←追加(引数にはカラム名を指定)
// 省略
2.Userモデル(\app\Models\User.php)のトレイとに「use HasUuids」を追加
// 省略
use Illuminate\Database\Eloquent\Concerns\HasUuids;
// 省略
class User extends Authenticatable
{
// 省略
use HasUuids;
// 省略
たったこれだけで主キーをUUIDにしてくれます。
さらに、このUUIDは順序付き(ordered)UUIDなので、ソートやインデックスにも使えます。
補足:外部キー(foreign key)としてUUIDのカラムを指定する場合
foreignIdではなく、foreignUuidを使う
// $table->foreignId('user_id') ←これではない(UNSIGNED BIGINTの型)
$table->foreignUuid('user_id') // ←こちらにする(UUIDの型)
ディスカッション
コメント一覧
まだ、コメントがありません