JMSSerializer и класс наследования

У меня проблема с JMS Serializer и классом наследования. Когда я сериализую свои сущности, он не заботится о аннотации JMSSerializer из-за класса наследования … Итак, как я могу установить анонс JMSSerializer с наследованием класса?

Пример :

/**
* Class Category
*
* @Serializer\ExclusionPolicy("all")
*/
class Category extends BaseCategory
{
/**
* @var integer $id
*
* @Serializer\Expose
*/
protected $id;
}


/**
* Class BaseCategory
*/
class BaseCategory
{
/**
* @var Dish
*/
protected $dishs;

/**
* @var string
*/
protected $name;
}

Когда я сериализую категорию, возвращаемый json выглядит следующим образом: [{«dishs»: [{«name»: «Salade», «id»: 5}], «name»: «…», «id»: 1 }]. Аннотация ExclusionPolicy не применяется.

У тебя есть идеи почему? Если я установлю все поля в одной и той же сущности, это будет хорошо работать, но нарушит весь мой шаблон …

Спасибо

1

Решение

Вы наследуете от BaseCategory — вы не можете ожидать, что это сработает.
Установите ваш ExclusionPolicy в базовом классе — в этом случае ваш расширенный класс будет наследоваться от BaseCategory.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]