【发布时间】:2016-09-05 11:27:33
【问题描述】:
我正在尝试实现如下所示的功能:
$table->dateTime('time')->default(new \DateTime());
这个确切的代码失败了,因为
[错误异常]
DateTime 类的对象无法转换为字符串
另一个问题是,我觉得应该有更强大/优雅的方式来解决这个问题。那么,如何在迁移中正确设置默认的DateTime 值呢?
【问题讨论】:
-
我不明白为什么这个问题被标记为重复。 Timestamp 和 dateTime 相似,但没有一个答案说明如何为
dateTime设置默认值,而不是timestamp。要设置 dateTime 默认值,您可以使用Carbon。$table->dateTime('time')->default(\Carbon\Carbon::now()); -
@Mirceac21 挑战在于它将设置为当时的实际当前时间。这将动态设置它
$table->dateTime('app_date')->default(DB::raw('CURRENT_TIMESTAMP')); -
@Mirceac21 这是一个非常糟糕的方法。您想要插入时的当前日期时间,而不是在宣布迁移时!
-
@Juan @kakoma 我认为问题是关于使用
DateTime时迁移引发的错误。你们都是对的,但这取决于应用程序需要什么“时间”来使用 php 或 mysql 或固定日期(例如:Carbon::yesterday())。问题是如何设置默认日期时间而不是当前时间。
标签: laravel laravel-migrations