環境
- php:8.1
 - laravel:9.23.0
 
対象
- laravelのMigrationでidを設定した時に別名を付けたい人
 - idに別名をつけてseeder実行してエラーになった人
 
方法
マイグレーションファイル
- 他と同じように()の中にカラム名を記入してください
 
create_users_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id('user_id')->comment('ユーザーID');
            $table->string('name')->comment('ユーザー名');
            $table->string('email')->unique()->comment('メールアドレス');
        });
    }
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
};
モデル
- $primaryKeyで設定したいカラム名を指定してください ← これがポイントだと思います
 
User.php
<?php
declare(strict_types=1);
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
    use HasFactory;
    protected $primaryKey = 'user_id';
    protected $table = 'users';
}