如何将 DataTransformer 转换与 FosRestBundle 视图层一起使用

How can I use a DataTransformer transform with the FosRestBundle view layer

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

这按预期工作得很好,但是当我 return 使用 FosRestBundle 视图层将数据发送到客户端时,我不确定如何使用该转换器将其转换回十进制值客户?

如果您将 JMSSerializer 与 FOSRestBundle 一起使用,序列化程序通常会使用反射访问对象的值,因此不会触及 getter。

但是,您可以使用 access_type 设置将 属性 或对象中所有属性的访问类型设置为 public 方法 (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