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>PostgreSQL 和 Laravel 4.x: 為 CURRENT_TIMESTAMP 指定零精確度以避免微秒解析問題。
以上是如何在更新 CURRENT_TIMESTAMP 時將 Laravel 時間戳記設定為 CURRENT_TIMESTAMP?的詳細內容。更多資訊請關注PHP中文網其他相關文章!