Laravelにおけるcreated_atのデフォルト値の設定方法


という名前のカラムがあり、レコードが作成された日時が自動的に設定されます。

しかし、場合によってはcreated_atのデフォルト値を変更したい場合もあります。以下に、Laravelにおけるcreated_atのデフォルト値の設定方法を紹介します。

  1. マイグレーションファイルでデフォルト値を指定する方法:

マイグレーションファイルを使用してテーブルを作成する場合、created_atカラムにデフォルト値を指定することができます。以下は例です:

Schema::create('table_name', function (Blueprint $table) {
    $table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
});

上記のコードでは、created_atカラムのデフォルト値を現在のタイムスタンプに設定しています。

  1. モデルクラスでデフォルト値を指定する方法:

Eloquentモデルクラスでcreated_atのデフォルト値を設定することもできます。モデルクラスに以下のコードを追加します:

protected $attributes = [
    'created_at' => null,
];

上記のコードでは、created_atのデフォルト値をnullに設定しています。この場合、新しいレコードが作成される際にはcreated_atnullとなります。

  1. モデルイベントを使用してデフォルト値を設定する方法:

また、モデルイベントを使用してcreated_atのデフォルト値を設定することもできます。モデルクラスに以下のコードを追加します:

protected static function boot()
{
    parent::boot();
    static::creating(function ($model) {
        $model->created_at = now();
    });
}

上記のコードでは、新しいレコードが作成される際にcreated_atに現在の日時を設定しています。

これらの方法を使用して、Laravelにおけるcreated_atカラムのデフォルト値を設定することができます。必要に応じて、他のデフォルト値を指定することも可能です。詳細については、Laravelの公式ドキュメントを参照してください。