slam4:bugreport:revisions

Ceci est une ancienne révision du document !


DAO V 1.0.0.3

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;

  • name : nom de la clé étrangère correspondant au groupe dans l'utilisateur ⇒idGroupe
  • className : Classe du membre associé

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;

  • mappedBy : fait référence au membre groupe de la classe utilisateur
  • className : Classe du membre associé

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());

class Groupe extends BaseObject{
	...
	
	/**
	 * @ManyToMany(targetEntity="Module", inversedBy="groupes")
	 * @JoinTable(name="droit")
	 */
	private $modules;
}

  • slam4/bugreport/revisions.1385644169.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)