PHP Doctrine:如何在insert / update上保留表默认值

时间:2013-12-02 14:40:26

标签: php symfony orm doctrine

我有一个表,其中包含某些列的默认值,i。即a ** creationDate **列保存记录的创建日期,因此只应在初始创建时设置,而不应在更新记录时设置。
我很乐意让mysql设置创建日期,但是当插入带有doctrine的记录时,即使我在实体类中没有getter或setter,这个值也会被NULL覆盖。防止这种情况的唯一方法是删除相应的(受保护的)属性。但是,如果我这样做,我根本无法访问** creationDate **字段的值。

如果我让php创建当前日期并使用它作为默认值,它也会在更新时设置当前时间戳。所以它更像是 updateDate 而不是 creationDate

如何在创建时将教条省略这些类型的字段插入/更新sql而不删除实体类中的属性?

感谢任何建议。

1 个答案:

答案 0 :(得分:1)

creationDate中设置__construct。这样,当您更新实体时,它就不会更新。

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

UPDATE(使用Connection的原始SQL)

<强> Question I answered that uses Raw SQL via Connection