Symfony - 5.6 Afficher les plats depuis la base de données

Cette leçon relie l'application à la base de données. Une entité décrit les plats, puis un contrôleur récupère les données et les transmet au template. Le menu s'affiche ensuite dans un tableau.

Créer le contrôleur

Créez un contrôleur avec la commande make:controller, suivie du nom du contrôleur. Ajoutez ensuite l'import de l'objet Request, puis le retour attendu dans la fonction.

Pensez aussi à importer l'objet Response en haut du fichier. Cela termine la première partie du contrôleur.

php bin/console make:controller

Afficher le menu avec un repository

Une nouvelle fonction, appelée menu, reçoit en paramètre le repository de l'entité Menu. Le repository lit les données de la base et les transmet au template sous le nom menu.

Dans le template menu, il faut remplacer le contenu du bloc par un tableau qui affiche les éléments du menu.

Déclarer la route

La route est ensuite déclarée dans le fichier config/routes.yaml, avec le nom du contrôleur. Cette étape permet au navigateur d'atteindre la page.

En résumé

Le contrôleur récupère les données grâce au repository de l'entité. Le template affiche ensuite ces données dans un tableau. La route rend la page accessible dans le navigateur.

Points clés

  • make:controller crée un contrôleur dans le projet.
  • Un repository lit les données enregistrées dans la base.
  • Les données sont transmises au template sous un nom de variable.
  • Le template affiche le menu dans un tableau HTML.
  • La route permet d'accéder à la page depuis le navigateur.

Questions fréquentes

Qu'est-ce qu'un repository ?

Un repository est un objet qui permet de lire les données d'une entité dans la base. Ici, il fournit la liste des éléments du menu.

Pourquoi transmettre la variable menu au template ?

Le template ne lit pas la base directement. La variable menu contient les données à afficher.

Où déclarer la route de cette page ?

Elle se déclare dans le fichier config/routes.yaml, avec le nom du contrôleur.