JMSerializer исключает сущность по состоянию имущества

У меня есть приложение Symfony с установленным JMSSerializerBundle.
Моя сущность выглядит так:

class MyEntity {

    /**
     * Attribute[]
     *
     * @ORM\OneToMany(targetEntity="AppBundle\Entity\Attribute", mappedBy="myEntity")
     * @JMS\Groups({"attributeSet_detail"})
     * @ORM\OrderBy({"position" = "ASC"})
     */
    protected $attributes;
}

AppBundle\Entity\Attribute Сущность имеет логическое свойство isActive

Теперь я хочу сериализовать MyEntity (включая все attributes) НО только те которые собственность isActive установлен в true

1 ответ

Вы можете использовать стратегию динамического исключения JMS Serializer.

<?php

class MyObject
{

    /**
     * @Exclude(if="true")
     */
    private $name;

    /**
     * @Expose(if="true")
     */
    private $name2;
}

Посмотрите документацию здесь: https://jmsyst.com/libs/serializer/master/cookbook/exclusion_strategies

Другие вопросы по тегам