問題陳述
Laravel 中時間列的戳預設值使用架構產生器的遷移設定為「0000-00-00 00:00:00」;我們如何將其修改為「CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP」?
解決方案
利用DB::raw() 將CURRENT_TIMESTAMP 合併為列的預設值:
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
或者,在Laravel 5.1 .25 之後,您可以直接在時間戳列上使用useCurrent() 方法:
$table->timestamp('created_at')->useCurrent();
對於MySQL,包括使用DB: 的ON UPDATE 子句: raw() 或者,從Laravel 8.36.0開始,useCurrentOnUpdate() 方法:
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
注意事項
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP(0)'));
感謝@andrewhl 識別Laravel 4.x PostgreSQL 問題,以及@ChanakaKarunarathne 提供useCurrentOnUpdate() 快捷方式。
以上是如何使用 Laravel 遷移以目前時間戳記填滿時間戳列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!