La réservation a fait un tabac : la taverne ne désemplit plus. Bruna veut enrichir sa carte chaque semaine, mais pour ajouter un plat, il faut… modifier le code. Inacceptable. Désormais, les plats vivront dans une base de données.
Symfony s'appuie pour cela sur Doctrine : vous décrivez une classe PHP (une entité), et Doctrine s'occupe de la table et du SQL.
Votre mission
Transformez la classe App\Entity\Plat en entité Doctrine, rangée dans la table plat :
| Propriété | Type en base | Particularité |
|---|---|---|
id |
entier | identifiant généré par la base |
slug |
texte (100) | unique |
nom |
texte (100) | |
description |
texte long | |
prix |
nombre à virgule | |
specialite |
booléen | faux par défaut |
Les propriétés et leurs accesseurs sont déjà écrits : il ne manque que le mapping, c'est-à-dire les attributs #[ORM\…].
La console
Onglet Console, à côté de l'aperçu : c'est un vrai bin/console.
doctrine:schema:validate: vérifie votre mapping ;doctrine:schema:update --force: crée la table dans la base de l'aperçu ;dbal:run-sql "SELECT * FROM plat": interroge la base en SQL.
Dans un vrai projet, on fait évoluer le schéma avec des migrations (
make:migration). Ici, la base de l'aperçu vit dans votre navigateur et repart de zéro à chaque chargement :schema:updatesuffit.