1、在更新entity时自动设置时间字段
<?php
namespace Tranz\BMTestBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* TestPage
*
* @ORM\Table(name="test_page")
* @ORM\Entity
* @ORM\HasLifecycleCallbacks() //这里引入doctrine生命周期管理的函数
*/
class TestPage
{
/**
* @var \DateTime
*
* @ORM\Column(name="created_time", type="datetime", nullable=false)
*/
private $createdTime = 'CURRENT_TIMESTAMP';
/**
* @var \DateTime
*
* @ORM\Column(name="updated_time", type="datetime", nullable=false)
*/
private $updatedTime = 'CURRENT_TIMESTAMP';
/**
* @return \DateTime
*/
public function getCreatedTime()
{
return $this->createdTime;
}
/**
* @param \DateTime $createdTime
*/
public function setCreatedTime($createdTime)
{
$this->createdTime = $createdTime;
}
/**
* @return \DateTime
*/
public function getUpdatedTime()
{
return $this->updatedTime;
}
/**
* @param \DateTime $updatedTime
*/
public function setUpdatedTime($updatedTime)
{
$this->updatedTime = $updatedTime;
}
/**
* @ORM\Prepersist //每次在commit前都会执行这个函数,达到自动更新创建时间和更新时间
*/
public function PrePersist(){
if($this->getCreatedTime()==null){
$this->setCreatedTime(new \DateTime('now'));
}
$this->setUpdatedTime(new \DateTime('now'));
}
}