default
メソッドを使用する方法: マイグレーションファイルで、特定のカラムのデフォルト値として現在の日付を設定したい場合は、default
メソッドを使用します。例えば、created_at
カラムに現在の日時を設定する場合は、以下のように記述します。
$table->timestamp('created_at')->default(\DB::raw('CURRENT_TIMESTAMP'));
このようにすると、新しいレコードが作成されるたびに、created_at
カラムに現在の日時が自動的に設定されます。
useCurrent
メソッドを使用する方法: 特定のカラムに現在の日付を設定するだけでなく、更新時にも自動的に現在の日付を設定したい場合は、useCurrent
メソッドを使用します。例えば、updated_at
カラムに現在の日時を設定する場合は、以下のように記述します。
$table->timestamp('updated_at')->useCurrent();
このようにすると、新しいレコードが作成されるだけでなく、既存のレコードが更新されるたびに、updated_at
カラムに現在の日時が自動的に設定されます。
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のマイグレーションで現在の日付を使用するいくつかの方法です。適用したい方法に応じて、適切なコードを選択してください。