PHP : Laravelのマイグレーションでタイムスタンプ値のデフォルトに現在日時を設定

こんにちは、さるまりんです。

DBテーブルに作成日時を記録するカラムcreated_atをタイムスタンプ型で用意して、デフォルト値としてデータ作成時のタイムスタンプを格納します。

テーブルのCREATE文(抜粋)ははこんな感じです。

CREATE TABLE records (
   ...
   created_at  TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

LaravelではmigrationでDBテーブルを作成しますが、その中で同様の指定をするには下のようにします。

default()を使って

$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));

です。

こんな書き方もあります。useCurrent()です。

$table->timestamp('created_at')->useCurrent();

シンプルですね。

Laravelにはいろんな便利機能があるんですね。
まだまだ知らないことがいっぱいです。
どんどん試していきたいと思います。

読んでくださってありがとうございます。

それではまた!