JMSerializer исключает сущность по состоянию имущества - PullRequest
0 голосов
/ 08 октября 2018

У меня есть приложение 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 Ответ

0 голосов
/ 09 октября 2018

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

<?php

class MyObject
{

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

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

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

...