composer require rorecek/laravel-ulid
$table->bigIncrements('id');
↓
$table->char('id', 26)->primary();
use HasUlid;
public $incrementing = false;
protected $keyType = 'string';
以上です。
引用 : https://qiita.com/mitashun/items/90891c4f9e95bfabfe17
(例として News.php モデルのプライマリキーを変更してみます)
以下のプロパティーを追加します
app/Models/News.php
// uuidなのでインクリメントOFF
public $incrementing = false;
// uuidなので string型
protected $keyType = 'string';
同じくモデルファイルに以下を追加します
app/Models/News.php
protected static function boot()
{
parent::boot();
self::creating(function(News $model) {
$model->id = \Str::orderedUuid();
});
}
database/migrations/xxxxxxxx_create_news_table.php
// $table->increments('id'); // コメントアウト
$table->uuid('id')->primary(); // uuidに変更
マイグレーションファイルをいちどロールバックして再実行します
php artisan migrate:rollback
php artisan migrate
composer require symfony/uid:5.4.21
use Symfony\Component\Uid\Ulid;
$ulid = new Ulid(); // e.g. 01AN4Z07BY79KA1307SR9X4MV3