Jie*_*eng 29 php doctrine doctrine-orm
我有一个DateTime领域:
/**
* Date time posted
* @Column(type="datetime")
*/
private $dtPosted;
Run Code Online (Sandbox Code Playgroud)
通过使用LifeCycleCallback将其设置为默认值
/**
* @PrePersist
*/
function onPrePersist() {
// set default date
$this->dtPosted = date('Y-m-d H:m:s');
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
致命错误:在第46行的D:\ ResourceLibrary\Frameworks\Doctrine\lib\Doctrine\DBAL\Types\DateTimeType.php中的非对象上调用成员函数format()
rom*_*anb 60
该date()函数返回一个字符串.该datetime类型适用于DateTime对象.因此要么将映射类型更改为string或使用DateTime对象.
spa*_*lls 28
你可以随时使用:
$this->updated = new \DateTime("now");
Run Code Online (Sandbox Code Playgroud)
http://www.doctrine-project.org/docs/orm/2.0/en/cookbook/working-with-datetime.html
尝试使用带有@ORM\PrePersist注释的setCreated和带有@ORM\PrePersist和@ORM\PreUpdate方法注释的setUpdated,而不是prePersist和preUpdate方法......
/**
* @ORM\PrePersist
*/
public function setCreated()
{
$this->created = new \DateTime();
}
/**
* @ORM\PrePersist
* @ORM\PreUpdate
*/
public function setUpdated()
{
$this->updated = new \DateTime();
}
Run Code Online (Sandbox Code Playgroud)