在 Laravel 迁移中将默认时间戳列值设置为当前时间戳
问题:
如何我可以在 Laravel 迁移中定义一个时间戳列,将默认值设置为当前时间戳,并在修改时将其更新为当前时间戳吗?
答案:
MySQL:
要将时间戳列的默认值设置为当前时间戳并在 MySQL 中修改时更新它,可以使用 useCurrent() 和 useCurrentOnUpdate() 列修饰符:
<code class="php">$table->timestamp('created_at')->useCurrent(); $table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();</code>
PostgreSQL:
对于 PostgreSQL,不需要特定的修饰符。只需使用 timestamp() 方法即可将默认值设置为当前时间戳:
<code class="php">$table->timestamp('created_at');</code>
较旧的 Laravel 版本:
在 5.1.25 之前的 Laravel 版本中,您可以使用 DB::raw() 方法设置默认值:
<code class="php">$table->timestamp('created_at')->default(DB::raw('NOW()')); $table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP'));</code>
陷阱:
以上是如何将时间戳列的默认值设置为当前时间戳并在 Laravel 迁移中的修改时更新它?的详细内容。更多信息请关注PHP中文网其他相关文章!