Laravel Migrations のタイムスタンプ列のデフォルトとして現在のタイムスタンプを設定する
Q: Laravel Migrations でタイムスタンプ列を設定するにはどうすればよいですか?デフォルトで現在のタイムスタンプを設定し、値に応じてタイムスタンプ自体を更新するオプションを指定します。
A: Laravel のスキーマ ビルダーは、これを実現する簡単なメソッドを提供します:
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP')); $table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
DB::raw は未加工の式を作成するために使用され、CURRENT_TIMESTAMP を次のように設定できるようになります。デフォルト。このソリューションは、さまざまなデータベース ドライバー間で効果的に機能します。
Laravel の機能強化:
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
注意:
MySQL (5.7 以降):
可能性を避けるために、タイムスタンプ列に有効なデフォルト値を割り当ててください。無効な日付の問題 (例: 0000-00-00 00:00:00)。 useCurrent() を使用するか、列を null 可能にします。
Laravel 4.x での PostgreSQL:
以上がLaravel の移行でデフォルトのタイムスタンプを設定し、タイムスタンプを自動更新する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。