如何在FosRestBundle视图层中使用DataTransformer变换

时间:2015-01-28 23:27:42

标签: symfony fosrestbundle

我在我的表单上使用DataTransformerreverseTransform客户端发送到Money/Money对象的十进制值。

这可以正常工作,但是当我使用FosRestBundle视图层将数据返回给客户端时,我不知道如何使用该转换器将其转换回客户端的十进制值? / p>

1 个答案:

答案 0 :(得分:1)

如果您正在使用带有FOSRestBundle的JMSSerializer,则序列化程序通常会使用反射来访问对象的值,因此不会触及getter。

但是,您可以使用access_type设置将对象的属性或所有属性的访问类型设置为公共方法(getters / setters)。

对于注释,您将使用..

use JMS\Serializer\Annotation\AccessType;

class YourClass
{
    /**
     * @AccessType("public_method")
     */
    private $money;

    ....
}

有关详细信息,请参阅:
  注释:http://jmsyst.com/libs/serializer/master/reference/annotations#accessor
  XML:http://jmsyst.com/libs/serializer/master/reference/xml_reference
  YAML:http://jmsyst.com/libs/serializer/master/reference/yml_reference