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

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

LaravelのModelの主キーを文字列型にする

はじめに

こんばんは。

知らなかったんかい!という簡単備忘録です。

タイトルの通り Laravelで使用する主キーを整数型ではなく文字列型に設定する方法です。

本題

答えはこちら

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

final class TargetModel extends Model
{
    public $incrementing = false; // 自動増分しない
    protected $keyType = 'string'; // 自動増分IDのデータ型をstringへ指定
}

どちらかだけでもだめで、どちらも必要です。

ちなみに laravel9からは uuid の場合は以下のトレイトをuseすれば対応可とのことです。

github.com

終わりに

簡単なものですが、以上です。