Используется:
Symfony 4.1, FOSRestBundle, JMSSerializerBundle
Имеется сущность
Article
, которая имеет двустороннюю
one-to-many связь с
ArticleImage
.
class Article
{
private $id;
...
/**
* @ORM\OneToMany(targetEntity="ArticleImage", mappedBy="article")
*/
private $images;
...
}
class ArticleImage
{
private $id;
private $file;
...
/**
* @ORM\ManyToOne(targetEntity="Article", inversedBy="images")
*/
private $article;
private $isPreview;
...
}
Имеется два контекста сериализации:
list и
detail. Как можно настроить, чтобы в контексте
list в результат попадала только одна сущность
ArticleImage
, у которой
$isPreview
имеет значение
true
, а не вся коллекция?
Есть мысль повесить EventListener и перед сериализацией в зависимости от контекста руками удалять все лишние
ArticleImage
из коллекции, но что-то мне этот вариант кажется не самым оптимальным.