如何在symfony2中设置创建和更新的日期?
问题描述:
我正在创建一个todo应用程序,用户可以在其中创建任务。用户可以选择插入标题,截止日期,完成。我希望能够在用户创建任务时自动插入创建和更新的日期。如何在symfony2中设置创建和更新的日期?
答
更好的解决方案是使用来自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();
}
....
}
希望这有助于
使用教义的prePersist和preUpdate事件 – 2015-02-09 05:54:52