2015-01-28 3 views
0

Я использую DataTransformer на моей форме до reverseTransform десятичное значение, отправленное клиентом в объект Money/Money.Как я могу использовать преобразование DataTransformer с уровнем представления FosRestBundle

Это работает хорошо, как и ожидалось, однако, когда я возвращаю данные клиенту с использованием уровня представления FosRestBundle, я не уверен, как использовать этот трансформатор для преобразования его в десятичное значение для клиента?

+0

Вы используете учение, а затем хранить его в качестве десятичное число в БД? – qooplmao

+0

Нет, нет доктрины, я использую DynamoDB, так что у меня есть собственный способ сохранения данных. Я храню денежные значения в виде строк, то есть '' 50.25 ", и используя получатели и сеттеры объектов, чтобы преобразовать их в объект« Деньги »и из него. – greg

ответ

1

Если вы используете JMSSerializer с FOSRestBundle, сериализатор обычно обращается к значениям вашего объекта с помощью отражения, чтобы геттеры не касались друг друга.

Однако вы можете установить тип доступа для свойства или всех свойств объекта к общедоступному методу (getters/seters), используя настройку access_type.

Для аннотации вы бы использовать ..

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

Смежные вопросы