Aller au contenu

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 :

category-table

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

category-list

quote-list

Travail à réaliser

  1. Ajouter l'entité Category ainsi que la relation avec l'entité Quote
  2. Créer une classe de fixtures CategoryFixtures pour ajouter au moins 2 catégories en base de données
  3. Modifier le formulaire de création/modification de citation pour ajouter le champ catégorie
  4. Créer un nouveau contrôleur CategoryController à l'aide de la commande Symfony make: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)
  5. 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
  6. Tenter de supprimer une catégorie qui contient des citations
  7. 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