首页 > 解决方案 > Symfony 实体 - Oracle 默认 SYSDATE 不起作用

问题描述

Symfony 5 + 甲骨文。

实体:

/**
 * @var \DateTime
 *
 * @ORM\Column(name="CREATE_DT", type="date", nullable=false, options={"default"="SYSDATE"})
 */
private $createDt = 'SYSDATE';

控制器:

//save entity object to database (createDt property NOT passed, default must be applied)
$em->persist($obj);
$em->flush();

错误:无法将“字符串”类型的 PHP 值“SYSDATE”转换为“日期”类型。预期为以下类型之一:null、DateTime(500 内部服务器错误)

如何让 Symfony 在刷新时应用默认的 SYSDATE?

标签: oraclesymfonysymfony5sysdate

解决方案


您可以直接在构造函数中使用默认值初始化您的日期。

class YourEntity {

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="CREATE_DT", type="date", nullable=false)
     */
    private $createDt;

    public function __construct() {
        $this->createDt = new \Datetime();
    }
}


推荐阅读