slam4:bugreport:revisions

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
slam4:bugreport:revisions [2013/11/28 11:11] jcheronslam4:bugreport:revisions [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== DAO V 1.0.0.3 ====== ====== DAO V 1.0.0.3 ======
 +
 +<html><div class="note">Attention, les accesseurs (getters and setters) doivent être implémentés pour le bon fonctionnement des associations.</div></html>
  
 ===== ManyToOne ===== ===== ManyToOne =====
Ligne 8: Ligne 10:
 Ajout des annotations dans la classe Utilisateur : Ajout des annotations dans la classe Utilisateur :
  
-<sxh php;titleUtilisateur.php>+<sxh php;title:Utilisateur.php>
 class Utilisateur extends BaseObject{ class Utilisateur extends BaseObject{
  
Ligne 21: Ligne 23:
 </sxh> </sxh>
  
 +==== JoinColumn ====
 +  * **name** : nom de la clé étrangère correspondant au groupe dans l'utilisateur =>idGroupe
 +  * **className** : Classe du membre associé
  
-===== Déclaration des ManyToMany et OneToMany =====+==== Chargement ==== 
 +Les membres **manyToOne** sont chargées automatiquement avec les objets qui les contiennent. 
 +Si un utilisateur est chargé, le groupe de l'utilisateur l'est également.
  
-<sxh php;title:Exemple ManyTOMany>+<sxh php;title:Chargement d'un utilisateur> 
 +$aUser=DAO::getOne("Utilisateur",1); 
 +echo $aUser->getGroupe(); 
 +</sxh> 
 + 
 +===== OneToMany ===== 
 + 
 +**Exemple :** 
 +Dans chaque groupe, on a plusieurs utilisateurs. 
 + 
 +Ajout des annotations dans la classe Groupe : 
 + 
 +<sxh php;title:Groupe.php>
 class Groupe extends BaseObject{ class Groupe extends BaseObject{
- private $libelle; 
  
 + private $libelle;
  /**  /**
  * @OneToMany(mappedBy="groupe",className="Utilisateur")  * @OneToMany(mappedBy="groupe",className="Utilisateur")
  */  */
  private $utilisateurs;  private $utilisateurs;
 +</sxh>
 +
 +  * **mappedBy** : fait référence au membre groupe de la classe utilisateur
 +  * **className** : Classe du membre associé
 +
 +==== Chargement ====
 +Les membres **oneToMany** ne sont chargés automatiquement avec les objets qui les contiennent.
 +Il est nécessaire de le faire explicitement dans le code pour qu'ils le soient :
 +
 +<sxh php;title:Chargement d'un groupe et de ses utilisateurs>
 +$aGroupe=DAO::getOne("Groupe",1);
 +DAO::getOneToMany($aGroupe,"utilisateurs");
 +var_dump($aGroupe->getUtilisateurs());
 +</sxh>
 +===== Déclaration des ManyToMany=====
 +
 +
 +**Exemple :** Les groupes disposent de droits sur les modules.\\
 +Un groupe aura donc une collection de modules représentant ses droits.
 +
 +<sxh php;title:Exemple ManyTOMany>
 +class Groupe extends BaseObject{
 + ...
   
  /**  /**
Ligne 39: Ligne 81:
  private $modules;  private $modules;
 } }
 +</sxh>
 +
 +  * **targetEntity** : Classe métier des objets de la collection cible
 +  * **inversedBy** : nom du membre collection dans la classe targetEntity
 +
 +==== JoinTable ====
 +  * name : nom de la table association correspondant à la CIM.
 +
 +==== Chargement ====
 +Les membres **ManyToMany** ne sont pas chargés automatiquement avec les objets qui les contiennent.
 +Il est nécessaire de le faire explicitement dans le code pour qu'ils le soient :
 +
 +<sxh php;title:Chargement d'un groupe et de ses modules>
 +$aGroupe=DAO::getOne("Groupe",1);
 +DAO::getManyToMany($aGroupe,"modules");
 +var_dump($aGroupe->getModules());
 </sxh> </sxh>
  • slam4/bugreport/revisions.1385633490.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)