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>
以上是如何在更新 CURRENT_TIMESTAMP 时将 Laravel 时间戳设置为 CURRENT_TIMESTAMP?的详细内容。更多信息请关注PHP中文网其他相关文章!