Laravel Migration 個人用チートシート

前提

自分用なので網羅性は気分次第。

論理削除

$table->softDeletes();
// 論理削除に指定するカラムを明示的に指定する場合は
$table->softDeletes('deleted_at');

softDeletes() の第一引数を省略した場合、 deleted_at というカラム名が作成され、それが論理削除用のカラムとなる。

外部キー設定

以下手順でカラム作成と、そのカラムへのリレーションの設定を同時に行うことができる。

$table->foreignId('book_id')->constrained('books');
// リレーションを貼るカラム名を明示的に指定する場合は
$table->foreignId('book_id')->constrained('books', 'id');

リレーション先のキーが id であるならば、constrained() の第二引数は省略して良い。

ポリモーフィック

例えば1つの Image を作成し、その Image を他の複数のモデル(User、Article、Card など)から共用したい、というような場合に利用する。 この場合、 まず Image / User / Article / Card テーブルは普通に作成する。

最後に imagable というテーブルを作成する migrationファイルを作成し、以下の1行を記述する。

$table->morphs('imagable');

これにより、以下のの2つのカラムが追加される。

  • imagable_at
  • imagable_type
執筆日:
本記事のタグ