将当前时间戳设置为 Laravel Migrations 中时间戳列的默认值
问:如何在 Laravel Migrations 中配置时间戳列默认为当前时间戳,并可选择根据值更新自身更改?
A: Laravel 的 Schema Builder 提供了一个简单的方法来实现此目的:
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP')); $table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
DB::raw 是用于创建原始表达式,允许我们将 CURRENT_TIMESTAMP 设置为 默认。该解决方案可以在各种数据库驱动程序中有效工作。
Laravel 中的增强功能:
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
注意事项:
MySQL(5.7 及以上):
确保为时间戳列分配有效的默认值以避免潜在的问题无效日期的问题(例如 0000-00-00 00:00:00)。使用 useCurrent() 或使列可为空。
PostgreSQL 与 Laravel 4.x:
以上是如何在 Laravel 迁移中设置默认时间戳和自动更新时间戳?的详细内容。更多信息请关注PHP中文网其他相关文章!