2015-10-05 86 views
0

作爲標題狀態,我試圖添加一個自定義屬性到我返回的序列化對象。Symfony2 JMS序列化程序添加自定義屬性

讓我們的用戶有以下幾種方法:

  • 的getFirstName,setFirstname
  • getLastname,setLastname
  • getUsername,在系列化setUsername
  • ...

現在我想添加一個屬性fullName:Firstname + Lastname。

我有一個getter方法在我的實體,像這樣:

/** 
* get name 
* 
* @return string 
*/ 
public function getName() 
{ 
    return $this->getFirstname()." ".$this->getLastname(); 
} 

我的序列號文件看起來是這樣的:

AppBundle\Entity\User: 
    exclusion_policy: ALL 
    properties: 
     id: 
      expose: false 
     username: 
      expose: true 
      groups: [list, details] 
     email: 
      expose: true 
      groups: [details] 
     name: 
      expose: true 
      groups: [list, details] 

我試圖與

name: 
     expose: true 
     groups: [list, details] 
     access_type: public_method 
     type: string 
     serialized_name: fullName 
     accessor: 
      getter: getName 

等變種,但我似乎無法做到正確。

Note: Yes I've cleared my cache and tried it again.

任何人能告訴我,我缺少的是什麼?

在此先感謝!

回答

1

因爲你的全名是不是酒店在所有你必須定義一個虛擬財產:

AppBundle\Entity\User: 
    exclusion_policy: ALL 
    properties: 
     # All properties but not name 
    virtual_properties: 
     getName: 
      groups: [list, details] 
      serialized_name: fullName