Clé*_*aud 2 php datetime symfony doctrine-orm
所以,我在我的实体中有一个这样的DateTime字段:
/**
* @var \DateTime
*
* @ORM\Column(name="timestamp", type="datetime")
*/
private $timestamp;
Run Code Online (Sandbox Code Playgroud)
每次我在我的数据库中插入一些东西,我这样做: $myEntity->setTimestamp(new \DateTime('now'));
所以,我想在我的实体中的字段上设置默认值,但是当我尝试时:
/**
* @var \DateTime
*
* @ORM\Column(name="timestamp", type="datetime")
*/
private $timestamp = new \DateTime('now');
Run Code Online (Sandbox Code Playgroud)
更新后我的基地与doctrine:schema:update我有这个错误:PHP Parse error: syntax error, unexpected 'new' (T_NEW) in...
如何为此字段设置默认值?我每次使用我的实体时都不想setTimestamp ...谢谢!
你在构造函数中做到这一点.
public function __construct(){
$this->timestamp(new \DateTime());
}
Run Code Online (Sandbox Code Playgroud)
LifecycleCallbacks方式:
<?php
use Doctrine\ORM\Mapping as ORM;
/**
* Example
*
* @ORM\Table(name="examples")
* @ORM\Entity
* @ORM\HasLifecycleCallbacks
*/
class Example
{
// ...
/**
* @var \DateTime
*
* @ORM\Column(name="create_at", type="datetime", nullable=false)
*/
private $createdAt;
/**
* @var \DateTime
*
* @ORM\Column(name="updated_at", type="datetime", nullable=false)
*/
private $updatedAt;
// ...
/**
* Set createdAt
*
* @param \DateTime $createdAt
* @ORM\PrePersist
* @return Example
*/
public function setCreatedAt()
{
if(!$this->createdAt){
$this->createdAt = new \DateTime();
}
return $this;
}
// ...
/**
* Set updatedAt
*
* @param \DateTime $updatedAt
* @ORM\PrePersist
* @return Example
*/
public function setUpdatedAt()
{
$this->updatedAt = new \DateTime();
return $this;
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
注意@ORM\HasLifecycleCallbacks和@ORM\PrePersist的注释.详细信息:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#lifecycle-callbacks
| 归档时间: |
|
| 查看次数: |
16950 次 |
| 最近记录: |