【问题标题】:Symfony2 JMS serializer add custom propertySymfony2 JMS 序列化程序添加自定义属性
【发布时间】:2015-10-05 16:10:17
【问题描述】:

正如标题所述,我正在尝试将自定义属性添加到我返回的序列化对象中。

让我们使用以下方法来获取用户:

  • getFirstname,setFirstname
  • 获取姓氏,设置姓氏
  • 获取用户名,设置用户名
  • ...

现在在序列化中我想添加一个属性 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.

谁能告诉我我错过了什么?

提前致谢!

【问题讨论】:

    标签: symfony serialization


    【解决方案1】:

    由于您的全名根本不是属性,因此您必须定义一个虚拟属性:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 2015-04-15
      相关资源
      最近更新 更多