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

У меня проблема с сериализатором JMS и классом наследования. Когда я сериализую свои объекты, он не заботится об аннотации 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 выглядит так: [{"блюда":[{"имя":"Салад","id":5}],"имя":"...","id":1 }]. Аннотация ExclusionPolicy не применяется.

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

Спасибо


person Alexandre AlexL LESAGE    schedule 05.09.2015    source источник


Ответы (1)


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

person LBA    schedule 05.09.2015