Bonjour,

J'ai deux entités gérées ainsi :

Entité partner
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();
        }
    }
Entité partnerMedia
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;
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
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 %}
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.