Avec les inventions de Bruna, la carte s'allonge… et plus personne ne s'y retrouve : le Grog du capitaine se glisse entre deux ragoûts. Gorm veut une carte rangée par catégorie : plats de résistance, accompagnements, boissons.
Votre mission
- Mappez l'entité
Categorie(tablecategorie) : unidgénéré, unnomunique (50 caractères), uneposition(l'ordre d'affichage sur la carte). - Reliez les deux entités :
- chaque plat appartient à une catégorie, obligatoirement ;
- une catégorie connaît ses plats, du moins cher au plus cher.
- Rangez la carte : pour chaque catégorie (le contrôleur les passe déjà dans l'ordre de
position), une<section class="categorie">avec un<h2>et la liste<ul class="plats">de ses plats.
Les propriétés et accesseurs sont écrits : à vous le mapping et le template. La carte filtrée par budget (?budget=) reste une simple liste.
La console
La commande de chargement échoue tant que Categorie n'est pas une entité : c'est normal. Une fois le mapping écrit, relancez :
doctrine:schema:update --force app:charger-carte
Rappel
Dans une relation, le côté ManyToOne est le propriétaire : il porte la clé étrangère (categorie_id). Le côté OneToMany est le côté inverse : il existe pour la navigation (categorie.plats) et se déclare avec mappedBy.