Doctrine - Les relations¶
1. Catégories de citation¶
Nous allons maintenant ajouter une notion de catégorie pour regrouper les citations en fonction de leur thème.
Quelques règles métiers à respecter :
- Une catégorie ne possède qu'un champ
namepour le moment (obligatoire, non vide et de 255 caractères maximum) - Une catégorie peut contenir une ou plusieurs citations mais une citation peut avoir une ou aucune catégorie
Une fois cette nouvelle entité ajoutée, vous obtiendrez le schéma suivant :

De nouvelles fonctionnalités seront ajoutées et rendues accessibles à l'aide de boutons ou liens dans l'interface utilisateur :


Travail à réaliser
- Ajouter l'entité
Categoryainsi que la relation avec l'entitéQuote - Créer une classe de fixtures
CategoryFixturespour ajouter au moins 2 catégories en base de données - Modifier le formulaire de création/modification de citation pour ajouter le champ catégorie
- Créer un nouveau contrôleur
CategoryControllerà l'aide de la commande Symfonymake:crudet l'adapter afin d'obtenir les fonctionnalités suivantes :- Liste des catégories triée par le nombre de citations (en utilisant une requête Doctrine)
- Création de catégorie (uniquement champ nom)
- Modification de catégorie (uniquement champ nom)
- Suppression de catégorie
- Visualisation d'une catégorie (avec une liste des citations de cette catégorie)
- Ajouter dans l'interface des liens pour accéder aux actions créées :
- Dans la Navbar, ajouter un lien pour créer une nouvelle catégorie et un autre pour afficher la liste des catégories
- Dans la liste des catégories, pour chaque catégorie, ajouter un lien vers la page de visualisation de la catégorie
- Sur la page de visualisation d'une catégorie, ajouter un lien pour éditer la catégorie et un autre pour supprimer la catégorie
- Dans la liste des citations, pour chaque citation, ajouter un lien vers la page de visualisation de la catégorie
- Tenter de supprimer une catégorie qui contient des citations
- Configurer la relation
Quote<->Categorypour que lors de la suppression d'une catégorie les citations associées soient détachées de la catégorie
Aide
Il faut ajouter un attribut JoinColumn et configurer sa propriété onDelete
Ressources :
Dernière mise à jour:
February 27, 2023