Laravelのマイグレーションで現在の日付を使用する方法


  1. default メソッドを使用する方法: マイグレーションファイルで、特定のカラムのデフォルト値として現在の日付を設定したい場合は、default メソッドを使用します。例えば、created_at カラムに現在の日時を設定する場合は、以下のように記述します。
$table->timestamp('created_at')->default(\DB::raw('CURRENT_TIMESTAMP'));

このようにすると、新しいレコードが作成されるたびに、created_at カラムに現在の日時が自動的に設定されます。

  1. useCurrent メソッドを使用する方法: 特定のカラムに現在の日付を設定するだけでなく、更新時にも自動的に現在の日付を設定したい場合は、useCurrent メソッドを使用します。例えば、updated_at カラムに現在の日時を設定する場合は、以下のように記述します。
$table->timestamp('updated_at')->useCurrent();

このようにすると、新しいレコードが作成されるだけでなく、既存のレコードが更新されるたびに、updated_at カラムに現在の日時が自動的に設定されます。

  1. default メソッドと onUpdate メソッドを組み合わせる方法: マイグレーションファイルで、特定のカラムに現在の日付を設定し、かつ更新時にも自動的に現在の日付を設定したい場合は、default メソッドと onUpdate メソッドを組み合わせて使用します。例えば、created_at カラムに現在の日時を設定し、updated_at カラムにも現在の日時を設定する場合は、以下のように記述します。
$table->timestamp('created_at')->default(\DB::raw('CURRENT_TIMESTAMP'));
$table->timestamp('updated_at')->default(\DB::raw('CURRENT_TIMESTAMP'))->onUpdate(\DB::raw('CURRENT_TIMESTAMP'));

このようにすると、新しいレコードが作成されるだけでなく、既存のレコードが更新されるたびに、created_at カラムと updated_at カラムに現在の日時が自動的に設定されます。

以上が、Laravelのマイグレーションで現在の日付を使用するいくつかの方法です。適用したい方法に応じて、適切なコードを選択してください。