Dans le développement web avec Symfony et Twig, il est souvent nécessaire d’afficher une image par défaut lorsqu’une image spécifique n’est pas disponible. Cela peut être utile, par exemple, dans la création de modèles où une image associée à une entité peut être absente.
Dans cet article, nous allons voir comment mettre en place cette fonctionnalité en utilisant une condition ternaire simple dans Twig.
Prenons l’exemple suivant où nous avons besoin d’afficher une image associée à un élément de nourriture. Nous avons une variable item.food.photo
qui contient le chemin de l’image de la nourriture. Si cette variable est vide, nous voulons afficher une image par défaut.
{% set imageSource = asset('upload/restaurant/' ~ item.food.photo) %}
{% if item.food.photo is empty %}
{% set imageSource = asset('path/vers/noimage_food_foodyparis.jpg') %}
{% endif %}
<img src="{{ imageSource }}" alt="Image de la nourriture">
Voici comment nous pouvons le faire en utilisant une condition ternaire dans Twig :
{% set imageSource = item.food.photo is not empty ? asset('upload/restaurant/' ~ item.food.photo) : asset('path/vers/noimage_food_foodyparis.jpg') %}
<img src="{{ imageSource }}" alt="Image de la nourriture">
Dans ce code :
- Nous définissons d’abord la variable
imageSource
en fonction du chemin de l’image fourni paritem.food.photo
. - Ensuite, nous utilisons une structure conditionnelle pour vérifier si
item.food.photo
est vide (empty
). Si c’est le cas, nous changeons la valeur deimageSource
pour le chemin de l’image de remplacement. - Enfin, nous utilisons la balise
img
pour afficher l’image en utilisant la valeur deimageSource