如何在 symfony2 中设置创建和更新日期?
How to set created and updated date in symfony2?
我正在创建一个待办事项应用程序,用户可以在其中创建 tasks.The 用户可以选择插入标题、截止日期、完成。我希望能够在用户创建任务时自动插入创建和更新日期。
您可以在对象初始化时设置创建日期(在 __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 的 Doctrine 的 Timestampable 扩展:
https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/timestampable.md.
此扩展使用生命周期回调,但它是设置创建和更新时间戳的更简洁的方法。
我正在创建一个待办事项应用程序,用户可以在其中创建 tasks.The 用户可以选择插入标题、截止日期、完成。我希望能够在用户创建任务时自动插入创建和更新日期。
您可以在对象初始化时设置创建日期(在 __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 的 Doctrine 的 Timestampable 扩展: https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/timestampable.md.
此扩展使用生命周期回调,但它是设置创建和更新时间戳的更简洁的方法。