我有一个表,其中包含某些列的默认值,i。即a ** creationDate **列保存记录的创建日期,因此只应在初始创建时设置,而不应在更新记录时设置。
我很乐意让mysql设置创建日期,但是当插入带有doctrine的记录时,即使我在实体类中没有getter或setter,这个值也会被NULL覆盖。防止这种情况的唯一方法是删除相应的(受保护的)属性。但是,如果我这样做,我根本无法访问** creationDate **字段的值。
如果我让php创建当前日期并使用它作为默认值,它也会在更新时设置当前时间戳。所以它更像是 updateDate 而不是 creationDate 。
如何在创建时将教条省略这些类型的字段插入/更新sql而不删除实体类中的属性?
感谢任何建议。
答案 0 :(得分:1)
在creationDate
中设置__construct
。这样,当您更新实体时,它就不会更新。
public function __construct(){
$this->creationDate = new \DateTime();
}
UPDATE(使用Connection
的原始SQL)