Bonjour,
J'ai deux entités gérées ainsi :
Entité partner
Entité partnerMedia
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 /** * @ORM\OneToMany(targetEntity="\AppBundle\Entity\Media\PartnerMedia", mappedBy="partner", cascade={"persist"}, orphanRemoval=true) * @ORM\OrderBy({"position" = "ASC"}) */ private $medias; public function __construct() { $this->medias = new ArrayCollection(); } public function firstPhoto() { if ($this->getMedias() && $this->getMedias()->count()) { return $this->getMedias()->first()->getMedia(); } }
Sur twig je veux afficher media de chaque partenaire qui peut être un media image ou vidéo (ceci est géré avec sonata mediabundle) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /** * @ORM\ManyToOne(targetEntity="\Application\Sonata\MediaBundle\Entity\Media") */ private $media;
Le problème qu'ici j'affiche juste la première image de chaque partenaire et non pas toutes + j'aimerai faire une vérification si c'est une image ou vidéo avec le providerName. Je ne sais pas comme m'y prendre avec ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 {% if partners is defined %} {% for partner in partners %} {% if (partner.mea) %} <div> {% set imgPath = mediaPath(partner.firstPhoto.id, 'reference') %} <a target="_blank" href="{{ partner.url }}"><img class="cover-img" src="{{ imgPath }}"></a> </div> {% endif %} {% endfor %} {% endif %}
Partager