Chapitre 4 4 Module Framework - partie - année - Yoann DIEUDONNÉ Stéphane DEVISMES - Université de Picardie Doctrine association d ? entité et formulaire sur entité Association ? Relation ? ordinateur s installé s dans la salle ? ci-contre la relation ent

Module Framework - partie - année - Yoann DIEUDONNÉ Stéphane DEVISMES - Université de Picardie Doctrine association d ? entité et formulaire sur entité Association ? Relation ? ordinateur s installé s dans la salle ? ci-contre la relation entre tables dans une base de données Les relations sont classiques ? en base de données comment se traduisent- elles entre entités de Doctrine En association entre entités D ? un coté des références pointeurs sur des objets de l ? autre des clés étrangères foreign key et des jointures Cardinalité des associations ? ManyToOne exemple la salle dans laquelle est installée l'ordinateur ? OneToMany exemple les ordinateurs installés dans la salle donc bidirectionnelle de la ManyToOne ? ManyToMany exemple les logiciels installés sur des ordinateurs un logiciel peut être installé sur plusieurs ordinateurs un ordinateur peut avoir plusieurs logiciels ? OneToOne exemple une personne et son numéro de sécurité sociale ? non étudié Sens de l'association ? unidirectionnelle une seule ? ManyToOne ? ManyToMany ? OneToOne ? Bidirectionnelle l ? association et son inverse ? une ManyToOne et la OneToMany inverse ? deux ManyToMany C ? deux OneToOne ? Le coté owner ? des associations bidirectionnelles problème compliqué ? à suivre many to one unidirectionnel ? Ajoutons une association à l ? entité Ordinateur lancez la commande make entity symfony console make entity Class name of the entity to create or update e g OrangePuppy Ordinateur New property name press to stop adding ?elds salle Field type enter to see all types string relation What class should this entity be related to Salle What type of relationship is this Relation type ManyToOne OneToMany ManyToMany OneToOne ManyToOne Is the Ordinateur salle property allowed to be null nullable yes no yes yes Do you want to add a new property to Salle so that you can access update Ordinateur objects from it - e g salle- getOrdinateurs yes no yes no updated src Entity Ordinateur php Add another property Enter the property name or press to stop adding ?elds Success Nous dé ?nissons une association unidirectionnelle salle de l'entité Ordinateur vers l'entité Salle ? rmq le nom de l'association salle ? pourrait être di ?érent de celui de l'Entité correspondante ? chaque ordinateur est associé à une salle au plus ou pas ? plusieurs ordinateurs pourront être associés à la même salle Voici ce qui a été ajouté dans le ?chier de l'entité Ordinateur ne pas programmer ORM ManyToOne targetEntity App Entity Salle private salle public function setSalle SalleTpBundle Entity Salle salle null this- salle salle return this public function getSalle return this- salle Mettez à jour la base de données symfony console make migration Success symfony console doctrine migrations migrate - ALTER TABLE ordinateur ADD salleid INT DEFAULT NULL - ALTER TABLE ordinateur ADD CONSTRAINT FK E DBDC FOREIGN KEY salleid REFERENCES salle id - CREATE INDEX IDX E DBDC ON ordinateur salleid ? Ceci ajoute un champ salleid dans la table ordinateur qui est une clé étrangère vers l id

  • 29
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise
Partager