我在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()抛出错误。但是,建议的修复程序对我不起作用。
任何建议都将不胜感激。