しかし、場合によってはcreated_at
のデフォルト値を変更したい場合もあります。以下に、Laravelにおけるcreated_at
のデフォルト値の設定方法を紹介します。
- マイグレーションファイルでデフォルト値を指定する方法:
マイグレーションファイルを使用してテーブルを作成する場合、created_at
カラムにデフォルト値を指定することができます。以下は例です:
Schema::create('table_name', function (Blueprint $table) {
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
});
上記のコードでは、created_at
カラムのデフォルト値を現在のタイムスタンプに設定しています。
- モデルクラスでデフォルト値を指定する方法:
Eloquentモデルクラスでcreated_at
のデフォルト値を設定することもできます。モデルクラスに以下のコードを追加します:
protected $attributes = [
'created_at' => null,
];
上記のコードでは、created_at
のデフォルト値をnull
に設定しています。この場合、新しいレコードが作成される際にはcreated_at
がnull
となります。
- モデルイベントを使用してデフォルト値を設定する方法:
また、モデルイベントを使用してcreated_at
のデフォルト値を設定することもできます。モデルクラスに以下のコードを追加します:
protected static function boot()
{
parent::boot();
static::creating(function ($model) {
$model->created_at = now();
});
}
上記のコードでは、新しいレコードが作成される際にcreated_at
に現在の日時を設定しています。
これらの方法を使用して、Laravelにおけるcreated_at
カラムのデフォルト値を設定することができます。必要に応じて、他のデフォルト値を指定することも可能です。詳細については、Laravelの公式ドキュメントを参照してください。