Всем привет. Уже второй день не могу найти решение следующей проблемы.
Использую JMS Serializer Bundle. Проблема в том, что при десериализации JSON в мой DTO класс, он преобразует все поля в тот формат, который объявлен в property класса.
То есть, если property выглядит так:
/**
* @NotNullOrEmpty()
* @Assert\Type(type="boolean")
*
* @Serializer\Type("boolean")
*
* @var bool
*/
private bool $isActive;
А из реквеста приходит такой JSON:
{"isActive": "test"}
То JMS преобразует строку в boolean, и соответственно она будет true.
Можно ли как-то это отключить? Читал, что можно подключить Visitor класс, и изменить поведение для конкретного поля, но и мой класс он не видит, хотя зарегистрировал его в services.yaml:
App\Serializer\Visitor\JsonDeserializationVisitor:
tags:
- { name: jms_serializer.deserialization_visitor, format: 'json' }