Symfony 实体 - Oracle 默认 SYSDATE 不工作

Symfony entity - Oracle default SYSDATE not working

Symfony 5 + Oracle。

实体:

/**
 * @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();

错误: 无法将类型 'string' 的 PHP 值 'SYSDATE' 转换为类型 'date'。应为以下类型之一:null、DateTime(500 内部服务器错误)

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

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

class YourEntity {

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

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