FOSRestbundle:将公共方法序列化为字段

FOSRestbundle:将公共方法序列化为字段,rest,symfony,serialization,fosrestbundle,jmsserializerbundle,Rest,Symfony,Serialization,Fosrestbundle,Jmsserializerbundle,我有一个具有标准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

我有一个具有标准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或serialiser自动执行此操作?

您可以使用VirtualProperty注释()


正是我需要的。谢谢
/**
 * @JMS\VirtualProperty
 * @JMS\SerializedName("dateAsMillis")
 */ 
  public function getDateAsMillis() {
    return $this->date->getTimestamp();
  }