我有像这样的symfony的实体类
/**
* @var datetime $createDate
* @ORMColumn(name="create_date", type="datetime", nullable=false)
*
*/
private $createDate;
/**
* @return datetime
*/
public function getCreateDate(){
return $this->createDate;
}
public function setCreateDate(DateTime $createDate){
$this->createDate=new DateTime('today');
return $this;
}
基本上我想将日期设置为今天的日期。
我正在使用json,该json被串行的对象,然后我应该对其进行化。
但是这个日期对象不在该序列化中,我想在持续 entity
这是简单的情况,但我想对日期进行一些计算,然后保存。
有不同的方法。最简单的是设置构造函数中的创建物:
public function __construct()
{
$this->createDate = new DateTime();
}
第二个是 - 就像已经描述的亚历山大一样 - 使用生命周期回调方法:
/**
* @ORMEntity()
* @ORMHasLifecycleCallbacks()
*/
class yourEntityClass
{
// ...
/**
* @ORMPrePersist
*/
public function prePersist()
{
$this->createDate = new DateTime();
}
}
第三个是使用学说扩展束,为此带有注释:
/**
* @var datetime $createDate
* @ORMColumn(name="create_date", type="datetime", nullable=false)
* @GedmoTimestampable(on="create")
*/
private $createDate;
这尤其有意义,如果您还想使用此捆绑包随附的其他行为,例如可缓慢的行为或可翻译的行为。
/**
* @PrePersist
*/
function onPrePersist() {
// set default date
$this->createDate= date('today');
}
更新实体时可能存在E问题,但是您可以添加简单的检查以查看是否已经设置了日期。