原则 2.1 - 日期时间列缺省值

2022-08-30 10:37:58

有人可以告诉我如何在DateTime列上添加默认值吗?我不能这样做:

protected $registration_date = date("Y-m-d H:i:s", time());

那么我该如何处理呢?


答案 1

对于默认值CURRENT_TIMESTAMP:

     @ORM\Column(name="created_at", type="datetime", options={"default": "CURRENT_TIMESTAMP"})

或者对于较旧的Symfony版本:

     @ORM\Column(name="created_at", type="datetime", options={"default": 0})

为我工作...但是,这仅适用于MySQL


答案 2

将属性映射为 DateTime 类型,然后使用新的 DateTime 实例在构造函数中设置值:

/**
 * @Entity
 * @Table(name="...")
 */
class MyEntity
{
    /** @Column(type="datetime") */
    protected $registration_date;

    public function __construct()
    {
        $this->registration_date = new DateTime(); 
    }
}

这工作,因为持久化类的构造函数不会在水合作用时调用。


推荐