学说合并:没有时间的日期总是更新

时间:2016-02-24 01:43:11

标签: php mysql symfony datetime doctrine-orm

更新迁移问题here:更多“通用”且易于理解。

我的实体有一个字段,映射到一个Doctrine Date类型。

/** @ORM\Column(type="date") */
protected $from;

Doctrine已正确创建Mysql列为Date(没有时间),如2012-12-18

我修改了setter,以创建DateTime对象:

public function setFrom($from){
    $this->from = new \DateTime($from);
}

我使用EntityManager->merge()更新实体(如果已修改),但它始终更新Date字段,因为存储的日期始终与setter中创建的DateTime不同({{1 }})。

如果日期没有改变,有办法避免更新吗?

1 个答案:

答案 0 :(得分:1)

您可以检查设置器中的日期是否已更改,以防止创建新的DateTime对象:

public function setFrom($from){
    if (!$this->from || $form != $this->from->format('your date format')) {
        $this->from = new \DateTime($from);
    }
}