Exemple : Chaque utilisateur a un groupe.
Ajout des annotations dans la classe Utilisateur :
class Utilisateur extends BaseObject{ private $login; private $password=null; private $mail; /** * @ManyToOne * @JoinColumn(name="idGroupe",className="Groupe",nullable=true) */ private $groupe;
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.
$aUser=DAO::getOne("Utilisateur",1); echo $aUser->getGroupe();
Exemple : Dans chaque groupe, on a plusieurs utilisateurs.
Ajout des annotations dans la classe Groupe :
class Groupe extends BaseObject{ private $libelle; /** * @OneToMany(mappedBy="groupe",className="Utilisateur") */ private $utilisateurs;
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 :
$aGroupe=DAO::getOne("Groupe",1); DAO::getOneToMany($aGroupe,"utilisateurs"); var_dump($aGroupe->getUtilisateurs());
Exemple : Les groupes disposent de droits sur les modules.
Un groupe aura donc une collection de modules représentant ses droits.
class Groupe extends BaseObject{ ... /** * @ManyToMany(targetEntity="Module", inversedBy="groupes") * @JoinTable(name="droit") */ private $modules; }
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 :
$aGroupe=DAO::getOne("Groupe",1); DAO::getManyToMany($aGroupe,"modules"); var_dump($aGroupe->getModules());