Laravel のスキーマ ビルダーはデータベース スキーマの操作を簡素化しますが、タイムスタンプ列のデフォルト値を現在のタイムスタンプに設定するのは困難な場合があります。
問題:
Laravel では、timestamps() はデフォルト値 0000-00-00 00:00 のタイムスタンプ列を生成します。 Laravel の移行を使用して、このデフォルトを CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP に設定するにはどうすればよいですか?
解決策:
タイムスタンプ列のデフォルト値として CURRENT_TIMESTAMP を指定するには、DB を使用します。 :raw():
<code class="php">$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));</code>
Laravel 5.1.25 以降では、useCurrent() 列修飾子を使用します:
<code class="php">$table->timestamp('created_at')->useCurrent();</code>
ON UPDATE 句の場合、DB::raw を使用できます():
<code class="php">$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));</code>
Laravel 8.36.0 以降、useCurrentOnUpdate() 修飾子を使用します:
<code class="php">$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();</code>
注意点:
<code class="php">$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP(0)'));</code>
以上がLaravelのタイムスタンプをUPDATE CURRENT_TIMESTAMPにCURRENT_TIMESTAMPに設定する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。