LaravelのDBマイグレーションで簡単に外部キー制約を付ける

投稿者: | 2020年6月27日

Laravelで外部キー制約をつける場合、今まで次のように記述していました。

$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');

ちょっと面倒ですね。
しかし、Laravel 7になってからもっと簡単に記述できるようになりました。
上記の内容でしたら、次のようになります。

$table->foreignId('user_id')->constrained();

もちろんこれはLaravelの定めるテーブル定義のルールにそっていないといけません。例えば、users.idを外部キーとするカラムはuser_idといった具合です。

フレームワークはバージョンアップするといろいろ改善されていたりしますので、定期的にマニュアルに目を通すのがいいですね。