はじめに
マイグレーションファイルでカラム設定をするときによく使用するメソッドをまとめました。(全部ではないです。)
カラム設定
これらのメソッドは、マイグレーションファイルに用意されている$table
から呼び出します。
DBのテーブルカラムには、カラム名とデータ型を指定する必要があり、データ型はPHPと同じで、整数型や論理型などがあります。
その他にも、主キー(プライマリキー)設定用のidメソッド
など、カラム指定を簡単にするためのショートカットメソッドも用意されています。
さらに、カラム修飾子
と呼ばれるメソッドを使用するとデフォルトで拒否されているNULLの値の登録を許可したり、カラムの登録位置の指定などのオプションを設定することもできます。
カラム指定
メソッド | 内容 |
---|---|
->date() | 年-月-日 |
->boolean() | 論理型 |
->dateTime() | 年-月-日 時:分:秒 |
->float() | 小数 |
->integer() | 整数 |
->string() | 文字列(最大16,383) |
->text() | 文章 (string()よりも文字数が多い) |
カラム指定のショートカット
メソッド | 内容 |
---|---|
->id() | 主キー用 |
->foreignId() | 外部キー用 |
->timestamps() | 作成日,更新日 |
->softDeletes() | 論理削除用 |
カラム修飾子
メソッド | 内容 |
---|---|
->nullable() | NULL許可(デフォルトは拒否)、引数にfalseで拒否 |
->comment() | コメント(説明など) |
->after() | カラムを別のカラムの後に配置 |
->first() | テーブルの最初にカラムを配置 |
カラム指定の簡略化
Laravelには簡潔に書ける短い記法も用意されています。
例えば、外部キー設定用のforeignIdメソッドの場合
カラム名 | データ型 | UNSIGNED | NULL許可 | オートインクリメント | 主キー制約 | 外部キー制約 |
---|---|---|---|---|---|---|
任意 | biginteger | Yes | No | No | No | constrainedメソッドで設定 |
$table->foreignId('user_id');
// ↓同じ
$table->bigInteger('user_id')->unsigned();
作成日、更新日用のtimestampsメソッドの場合
カラム名 | データ型 | NULL許可 | デフォルト値 | 用途 |
---|---|---|---|---|
created_at | timestamp | Yes | NULL | レコード作成日時 |
updated_at | timestamp | Yes | NULL | レコード更新日時 |
$table->timestamps();
// ↓同じ
$this->timestamp('created_at')->nullable();
$this->timestamp('updated_at')->nullable();