如何在symfony2中设置创建和更新的日期?

问题描述:

我正在创建一个todo应用程序,用户可以在其中创建任务。用户可以选择插入标题,截止日期,完成。我希望能够在用户创建任务时自动插入创建和更新的日期。如何在symfony2中设置创建和更新的日期?

+1

使用教义的prePersist和preUpdate事件 – 2015-02-09 05:54:52

更好的解决方案是使用来自gedmo的Doctrine的时间戳扩展: https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/timestampable.md

此扩展使用生命周期回调,但它是更清晰的方式来设置创建和更新的时间戳。

您可以在一个对象的初始化设置创建日期(__construct() method)及更新日期由生命周期回调管理Doctrine2事件,这里有一个例子:

<?php 
namespace Acme\DemoBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 


/** 
* @ORM\Entity() 
* @ORM\Table(name="task") 
* @ORM\HasLifecycleCallbacks 
*/ 
class Task { 

.... 

/** 
    * @ORM\Column(type="datetime") 
    */ 
    protected $createdAt; 

    /** 
    * @ORM\Column(type="datetime") 
    */ 
    protected $updatedAt; 

... 

    public function __construct() 
    { 
     $this->createdAt= new \DateTime(); 
     $this->updatedAt= new \DateTime(); 
    } 

    /** 
    * @ORM\PreUpdate() 
    */ 
    public function preUpdate() 
    { 
     $this->updatedAt= new \DateTime(); 
    } 

.... 

} 

希望这有助于