我有一个标准datetimetz字段的实体,带有标准的getter和setter:
/**
* @var \DateTime
*
* @ORM\Column(name="date", type="datetimetz")
*/
private $date;
/**
* Get date
*
* @return \DateTime
*/
public function getDate() {
return $this->date;
}
/**
* Set date
*
* @param \DateTime $date
* @return ConsultationForm
*/
public function setDate($date) {
$this->date = $date;
return $this;
}
序列化这个工作正常,生成的JSON有一个字符串,表示日期:
date: "2014-07-05T09:53:45+0200"
但是,我想在我的实体中添加第二个方法,它返回与我的日期对象相对应的Unix时间戳:
/**
* Get date as millis
*
* @return int
*/
public function getDateAsMillis() {
return $this->date->getTimestamp();
}
我希望此方法的输出也可以在结果对象中编码为JSON字段:
dateAsMillis: 3423435252345232
如何指示FOSRestbundle或序列化程序自动执行此操作?
答案 0 :(得分:1)
您可以使用VirtualPropery注释(http://jmsyst.com/libs/serializer/master/reference/annotations#virtualproperty)
/**
* @JMS\VirtualProperty
* @JMS\SerializedName("dateAsMillis")
*/
public function getDateAsMillis() {
return $this->date->getTimestamp();
}