Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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 :
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 :
$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
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
Hors ligne
Comment tu récupères le résultat du champ résultant de la jointure dans ta vue ?
Hors ligne
J'utilise pas le ZF avec son concept MVC
Cependant ma requete ressembre à ca :
$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' :
->joinLeft('type_audit','type_audit.NUM_TYPE_AUDIT = audit.NUM_TYPE_AUDIT',array('num_type_audit','libelle_type_audit'));
Hors ligne
Pages: 1