まず、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_id
とrole_id
カラムは外部キー制約を持ち、それぞれusers
テーブルとroles
テーブルの主キーに参照されます。
down
メソッドでは、テーブルを削除するコードを記述します:
public function down()
{
Schema::dropIfExists('role_user');
}
マイグレーションファイルが完成したら、以下のコマンドを実行してマイグレーションを実行します:
php artisan migrate
これにより、ピボットテーブルがデータベースに作成されます。
以上が、Laravelマイグレーションを使用してピボットテーブルを作成する方法です。この方法を使えば、多対多の関係を持つテーブルを簡単に作成することができます。