Php 如何删除symfony2中的日期时间错误?
我在symfony2中创建了一个实体,并将该实体设置为createddatetime和updateDateTime,但当我在控制器中使用setter时,会出现如下错误Php 如何删除symfony2中的日期时间错误?,php,symfony,doctrine-orm,doctrine,Php,Symfony,Doctrine Orm,Doctrine,我在symfony2中创建了一个实体,并将该实体设置为createddatetime和updateDateTime,但当我在控制器中使用setter时,会出现如下错误 FatalErrorException: Error: Call to a member function format() on a non-object in C:\wamp\www\QuickBacklog\vendor\doctrine\dbal\lib\Doctrine\DBAL\Types\DateTimeType.p
FatalErrorException: Error: Call to a member function format() on a non-object in C:\wamp\www\QuickBacklog\vendor\doctrine\dbal\lib\Doctrine\DBAL\Types\DateTimeType.php line 44
这是我的实体代码:
/**
* Set createdDatetime
*
* @param \DateTime $createdDatetime
* @return Sections
*/
public function setCreatedDatetime($createdDatetime)
{
$this->createdDatetime = $createdDatetime;
return $this;
}
/**
* Get createdDatetime
*
* @return \DateTime
*/
public function getCreatedDatetime()
{
return $this->createdDatetime;
}
/**
* Set updatedDatetime
*
* @param \DateTime $updatedDatetime
* @return Sections
*/
public function setUpdatedDatetime($updatedDatetime)
{
$this->updatedDatetime = $updatedDatetime;
return $this;
}
/**
* Get updatedDatetime
*
* @return \DateTime
*/
public function getUpdatedDatetime()
{
return $this->updatedDatetime;
}
但当我在控制器上写的时候
$date=date('Y-m-d H:i:s');
$entity->setCreatedDatetime($date);
$entity->setUpdatedDatetime($date);
如何删除此错误会发生此错误?updatedDatetime和createddatetime必须是DateTime类的对象
因此,控制器代码应类似于:
$date= new \DateTime();
$entity->setCreatedDatetime($date);
$entity->setUpdatedDatetime($date);
正如另一篇文章提到的,您的实体希望类型是DateTime,但我想了解一些额外的信息,但可以在将来帮助您 使用条令,您可以添加prePersist之类的事件,因此可以添加名为setDefaultCreatedDatetime的函数,该函数如下所示:
public function setDefaultCreatedDatetime()
{
$this->setCreatedDatetime(new \DateTime());
}
然后,您可以添加:
lifecycleCallbacks:
prePersist: [setDefaultCreatedDatetime]
你的教义实体。这将使您无需手动调用此方法
您还可以对setUpdatedTime执行相同的操作,并使用preUpdate事件