我在源代码中做了一些挖掘,时间戳的类型是硬编码的,所以你不能只是将它重新配置为DateTime
.
我认为更好的方法是让您创建自己的列(不使用 timestamps()),然后在您的模型中执行以下操作:
public class User extends Eloquent
{
public function save()
{
$this->attributes['created_at'] = new DateTime;
return parent::save();
}
}
另一种方法是使用ModelObservers
class UserObserver {
public function saving($model)
{
//
}
}
User::observe(new UserObserver);
你也可以尝试覆盖类的timestamp()
函数Blueprint
,但不能保证这不会在代码中的其他地方弄乱 Laravel,因为它使用 Carbon 来处理日期等......
class MyBlueprint extends Blueprint
{
public function timestamp($column)
{
return $this->addColumn('dateTime', $column);
}
}
然后在为迁移定义表结构时使用 MyBlueprint:
Schema::create('users', function(MyBlueprint $table) {
// code
$this->timestamps();
}