Laravelマイグレーションでピボットテーブルを作成する方法


まず、Laravelのマイグレーションファイルを作成します。ターミナルまたはコマンドプロンプトを開き、プロジェクトのルートディレクトリに移動します。次に、以下のコマンドを実行して、マイグレーションファイルを作成します:

php artisan make:migration create_pivot_table

これにより、新しいマイグレーションファイルがdatabase/migrationsディレクトリに作成されます。エディタでファイルを開き、upメソッドとdownメソッドを編集します。

ピボットテーブルを作成するには、Schemaファサードを使用します。以下は、例としてusersテーブルとrolesテーブルの間のピボットテーブルを作成するコードです:

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
public function up()
{
    Schema::create('role_user', function (Blueprint $table) {
        $table->id();
        $table->foreignId('user_id')->constrained();
        $table->foreignId('role_id')->constrained();
        $table->timestamps();
    });
}

この例では、role_userというテーブルが作成されます。user_idrole_idカラムは外部キー制約を持ち、それぞれusersテーブルとrolesテーブルの主キーに参照されます。

downメソッドでは、テーブルを削除するコードを記述します:

public function down()
{
    Schema::dropIfExists('role_user');
}

マイグレーションファイルが完成したら、以下のコマンドを実行してマイグレーションを実行します:

php artisan migrate

これにより、ピボットテーブルがデータベースに作成されます。

以上が、Laravelマイグレーションを使用してピボットテーブルを作成する方法です。この方法を使えば、多対多の関係を持つテーブルを簡単に作成することができます。