Laravel 移行を使用したデフォルトのタイムスタンプ値の設定
Laravel スキーマ ビルダーは、データベース テーブルを作成および変更するための便利な方法を提供します。ただし、ユーザーは、作成時および更新時にデフォルトのタイムスタンプ値を現在のタイムスタンプに設定する際に問題が発生することがあります。
timestamps() メソッド
通常、timestamps() メソッドcreated_at および updated_at タイムスタンプ列を自動的に管理するために使用されます。ただし、このメソッドはデフォルト値を '0000-00-00 00:00:00' に設定します。
解決策: DB::raw() および useCurrent()
CURRENT_TIMESTAMP のデフォルト値を設定するには、次を使用しますDB::raw():
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
Laravel 5.1.25 以降では、useCurrent() メソッドも使用できます:
$table->timestamp('created_at')->useCurrent();
MySQL ON UPDATE Clause
MySQL の場合、次を使用して ON UPDATE 句を指定できます。 DB::raw():
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
Laravel 8.36.0 以降、useCurrentOnUpdate() を併用できます。 useCurrent():
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
注意事項
以上がLaravel の移行でデフォルトのタイムスタンプ値を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。