在Doctrine2中设置日期字段

时间:2016-08-12 19:23:29

标签: mysql symfony datetime doctrine-orm

我在doctrine2中设置日期类型字段时遇到问题。底层数据库是mysql。我传递了一个DateTime对象的setter但仍然得到以下错误:"错误:在非对象上调用成员函数format()"

我尝试设置值的代码如下:

$date= new \DateTime('2016-08-12');
$deposit = new Deposits();
$deposit->setDepositDate($date);
$em = $this->getDoctrine()->getManager();
$em->persist($deposit);
$em->flush(); 

我已经检查并确认$ date是一个有效的DateTime对象,所以我非常有信心这不是问题。

此字段的实体分类如下:

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

/**
 * Set depositDate
 *
 * @param \DateTime $depositDate
 *
 * @return Deposits
 */
public function setDepositDate($depositDate)
{
    $this->depositDate = $depositDate;

    return $this;
}

错误是在vendor / doctrine / dbal / lib / Doctrine / DBAL / Types / DateTimeType.php中的 convertToDatabaseValue()函数中引发的。我找到了对类似问题的响应here,这表明以前存在一个错误,导致转换为微秒,导致convertToDatabaseValue()抛出错误。但是,建议的修复程序对我不起作用。

任何建议都将不胜感激。

0 个答案:

没有答案