Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Hello,
je cherche à faire un truc tout simple, mais je ne sais pas comment faire pour que cela reste simple ...
c'est tout bête, dans mon controleur j'envoie tous les enregistrements d'une table à la view, en utilisant la méthode fetchAll
function indexAction() { $this->view->title = "Gestion des actualités"; $actualites = new Actualites(); $this->view->actualites = $actualites->fetchAll(); }
Ma table "actualités" est en fait liée à une autre table, "entreprises", et j'ai une clef étrangère entreprise_id dans ma table actualités. J'ai une autre clef etrangère, liée à une table "contrats" (contrat_id est le nom de la clef)
Mon fetchAll ne me retourne que les ids des entreprises et des contrats, c'est normal. Mais comment faire afficher le nom des entreprises et des contrats? J'ai qq idées, mais j'ai l'impression que je ne cherche pas du bon côté.
j'ai défini l'association suivante dans mon modèle Actualites:
<?php class Actualites extends Zend_Db_Table { protected $_name = 'actualites'; protected $_referenceMap = array( 'Assureur' => array( 'columns' => 'entreprise_id', 'refTableClass' => 'Entreprises', 'refColumns' => 'id' ), 'Le_contrat' => array( 'columns' => 'contrat_id', 'refTableClass' => 'Contrats', 'refColumns' => 'id' )); }
j'ai pensé au début que je pourrai faire des
<?php echo $this->escape($actualite->findDependentRowset($entreprise)); ?>
directement dans la vue, mais ca ne passe pas. D'ailleurs ca me semble tordu comme idée, il faudrait plutot faire ca dans le controleur non? faut-il que je remplace le fetchAll par une requete maison?
Quelle solution me conseillez vous?
Merci d'avance pour votre aide,
Julien
Dernière modification par juli3n (15-09-2008 21:45:01)
Hors ligne
Toujours pas de solution en vue, mais j'ai lu pas mal de docs très interessants.
J'essaie des trucs comme ça dans mon modèle:
function indexAction() { $this->view->title = "Gestion des actualités"; //$actualites = new Actualites(); //$this->view->actualites = $actualites->fetchAll(); $dbAdapter = Zend_Registry::get('dbAdapter'); $this->view->actualites = $dbAdapter->select() ->from(array('actu' => 'actualites'), array('titre, entreprise_id', 'contrat_id')) ->join(array('entreprise' => 'entreprises' ), 'actu.entreprise_id = entreprise.id'); }
ca ne donne rien ... est ce que qq'un aurait une idée? merci
Hors ligne
Bon, c'etait n'importe quoi ce qui est écrit plus haut (dur dur le lundi!)
J'ai trouvé des réponses ici: http://www.z-f.fr/forum/viewtopic.php?id=372
(j'ai besoin de faire une jointure multiple pour mon projet)
Par contre, je bloque sur un probleme qui tient plus du SQL que de zf, je vais peut-etre ouvrir un nouveau topic à ce sujet
Hors ligne
Pages: 1