Bonjour,

Je suis entrain de créer un site e-commerce de mode.
Lors de la création d'un article, je lui ajoute 3 images.
mes images s'ajoutent bien dans ma BDD.
sur une de mes template, je souhaiterais afficher uniquement la première image téléchargée parmi les 3.
Est-ce que quelqu'un serait comment je peux faire ?

Voici mon code qui permet de récuperer mes images:

{% if app.request.attributes.get('_route') == 'app_show_article' %}
// élément à passer pour récuper ma 1ère image téléchargée
{% for image in articles.images %}
<div>
<img src="{{ asset('/uploads/'~image.name) }}" class="thumb-image"alt="" >
{% endfor %}
{% endif %}

Merci d'avance

6 réponses


Grafikart
Réponse acceptée

Tu peux pas faire article.images[0] ?

mary_25
Auteur

j'ai déjà essayer et je n'avais plus rien du tout.

je met mon code qui affiche les images :

{% if app.request.attributes.get('_route') == 'app_show_article' %}
        {% for image in articles.getImages %}
                <img src="{{ asset('/uploads/'~image.name) }}" alt="" class="thumb-image" style="">
        {% endfor %}
{% endif %}

Tu peux normalement faire articles.images tu n'est pas obligé de faire getImages.
C'est aussi bizarre que tu es articles au pluriel

mary_25
Auteur

effectivement articles.images fonctionne

si je met :

{% for image in articles.images[0] %}
        <div class="carousel-item active">
             <img src="{{ asset('/uploads/'~image.name) }}" alt="First slide" class="d-block">
        </div>
                    {{image.name}}
{% endfor %}

Je n'ai plus rien qui s'affiche

mary_25
Auteur

Problème résolu, j'avais une ligne de code qui me bloquait
merci de ton aide

Tu ne devrais pas faire un for là mais directement

<div class="carousel-item active">
    <img src="{{ asset('/uploads/'~article.images[0].name) }}" alt="First slide" class="d-block">
 </div>