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
name
pour 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é
Category
ainsi que la relation avec l'entitéQuote
- Créer une classe de fixtures
CategoryFixtures
pour 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:crud
et 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
<->Category
pour 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