Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-09-2008 15:14:32

juli3n
Membre
Date d'inscription: 02-09-2008
Messages: 37

[resolu][Zend_Db][1.6] fetchAll et associations de tables

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

Code:

    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:

Code:

<?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

Code:

<?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

 

#2 15-09-2008 16:26:01

juli3n
Membre
Date d'inscription: 02-09-2008
Messages: 37

Re: [resolu][Zend_Db][1.6] fetchAll et associations de tables

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:

Code:

    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 smile

Hors ligne

 

#3 15-09-2008 21:44:27

juli3n
Membre
Date d'inscription: 02-09-2008
Messages: 37

Re: [resolu][Zend_Db][1.6] fetchAll et associations de tables

Bon, c'etait n'importe quoi ce qui est écrit plus haut big_smile (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

 

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