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


How to set created and updated date in symfony2?

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

您可以在对象初始化时设置创建日期(在__construct() method中),并使用LifeCycle回调管理的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();
    }
....
}

希望这能帮助

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

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