微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Symfony 实体 - Oracle 默认的 SYSDATE 不起作用

如何解决Symfony 实体 - Oracle 默认的 SYSDATE 不起作用

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();

错误: 无法将“字符串”类型的 PHP 值“SYSDATE”转换为“日期”类型。应为以下类型之一: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();
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。