Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-05-2008 10:31:41

stf
Membre
Date d'inscription: 03-04-2008
Messages: 156

[ORM] Selections (ManytoManyRowset et compagnie)

Bonjour,

Je fait de nouveau appel à vos lumières aujourd'hui .


J'utilise un sytème d'ORM...jusque là tout va bien.

Hors me voici sur une requete un peu spéciale a réaliser. Je dois sélectionner certains champs(et tant qu'on y est faire des order etc etc...)

D'apres la doc de ManyToManyRowset, voici sa définition :

Code:

findManyToManyRowset  (
          string|Zend_Db_Table_Abstract $matchTable, 
          string|Zend_Db_Table_Abstract $intersectionTable, 
          [string $callerRefRule = null],
          [string $matchRefRule = null], 
          [Zend_Db_Table_Select $select = null]

)

Donc en gros on peut dire : findManyManyToManyRowset($tableA,$tableinter, $select )


Ce qui forcerait en fait a faire :

Code:

$select=$this->select()->from($_name,array('champ1','champ2'))->order('champ1');
$req=$this->findManyToManyRowset($_name,$_tableintersec,$select)

Où $_name est le nom de ma table défini dans la variable $_name de ma classe
et $_tableintersec, la table d'intersection entre ma table A(portant le nom $_name) et ma table B.

Ce n'est pas tant de faire le select qui me chiffone, mais plutot de devoir spécifier les noms des tables et donc de ne plus pouvoir utiliser la méthode magique find<Table3>Via<Table2> (comme dans le merveilleux doc de Julien et son FindLivresViaEmprunts)



Vous avez une meilleure solution?

Hors ligne

 

#2 09-05-2008 09:24:45

stf
Membre
Date d'inscription: 03-04-2008
Messages: 156

Re: [ORM] Selections (ManytoManyRowset et compagnie)

Finalement, je vais faire autrement(si jamais d'autres personnes se posent la question), sans passer par les "raccourcis" de l'ORM, comme ca le probleme ne se pose plus wink

Hors ligne

 

#3 09-05-2008 19:10:57

fetard
Membre
Date d'inscription: 08-04-2008
Messages: 21

Re: [ORM] Selections (ManytoManyRowset et compagnie)

Comment tu récupères le résultat du champ résultant de la jointure dans ta vue ?

Hors ligne

 

#4 13-05-2008 09:21:12

stf
Membre
Date d'inscription: 03-04-2008
Messages: 156

Re: [ORM] Selections (ManytoManyRowset et compagnie)

J'utilise pas le ZF avec son concept MVC

Cependant ma requete ressembre à ca :

Code:

$select=$db->select()->distinct()->from('audit',array('num_audit','date_audit','num_annuel_audit','comment_planif'))
                   ->joinLeft('organisation_bloc','organisation_bloc.NUM_BLOC = audit.NUM_BLOC',array('block_name'=>'libelle'))
                 ->joinLeft('type_audit','type_audit.NUM_TYPE_AUDIT = audit.NUM_TYPE_AUDIT',array('num_type_audit','libelle_type_audit'));

Les champs que tu veux récupérer via ta jointure doivent etre spécifiés dans le join(j'ai longtemps cherché à le mettre avec les autres dans le from )

par exemple là je récupere les champs "num_type_audit' et 'libelle_type_audit' dans la table 'type_audit' :

Code:

->joinLeft('type_audit','type_audit.NUM_TYPE_AUDIT = audit.NUM_TYPE_AUDIT',array('num_type_audit','libelle_type_audit'));

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages