LoginSignup
1
0

【Laravel】マイグレーション時によく使うカラム設定用メソッド

Posted at

はじめに

マイグレーションファイルでカラム設定をするときによく使用するメソッドをまとめました。(全部ではないです。)

カラム設定

これらのメソッドは、マイグレーションファイルに用意されている$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();

参考

Laravel 9.x マイグレーション

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0