php - Doctrine 修改后的 DateTime 不会持久化

标签 php symfony datetime doctrine-orm

<分区>

我尝试用modify函数修改对象的DateTime字段

    $em = $this->getDoctrine()->getManager();
    $end = $session->getEndDate();
    $session->setEndDate($end->modify('+10 seconds'));
    $em->persist($session);
    $em->flush();

这是 Session 类中 $endDate 字段的 setter :

  /**
    * @param \DateTime $endDate
    */
   public function setEndDate(\DateTime $endDate)
   {
       $this->endDate = $endDate;
   }

为什么不能将结束日期更改保存到数据库中?

最佳答案

Doctrine 不会保存对现有 DateTime 实例的更改(我认为是由于 PHP 内部的相等性测试)

如果您克隆该对象然后将其放回原来的位置,应该可以。或者在 setter 中克隆它?

参见 Doctrine2 ORM does not save changes to a DateTime field

关于php - Doctrine 修改后的 DateTime 不会持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43260110/

相关文章:

twig - 使用 twig 从 View 中获取 http 引用 URI

datetime - ColdFusion 中是否有日期/时间的自然语言解析器?

PHP,需要从 DateTime 中减去 12 小时 30 分钟

php - 包 ('i' ,1) 总是 4 个字节吗?

php - 重定向到下一个/路由操作,而不是用户登录/注册后的最后一个 symfony security

php - 在我的主题的 magento 1.9 中执行 4 步后结帐过程未继续

PhpStorm + Xdebug = 页面未加载

symfony - Doctrine - 从表中选择最后 4 行

symfony - 起始页和登录成功后的页面

java - 转换为 UNIX 时间戳错误