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