Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-02-2008 16:02:44

cyprien
Membre
Lieu: Niort
Date d'inscription: 14-02-2008
Messages: 10
Site web

[Résolu][Zend_Db_Table Relation][1.5]Aides, Soucis clé étrangère

Bonjour à tous!
Je suis nouveau sur votre forum et j'apprends Zend Framework grâce à vous et grâce au manuel du zend framework. Si je vous écrit, c'est que j'ai besoin de vos compétences smile
Je vous explique:
J'ai 4 tables dans ma base de donnée. Dans une table ("accounts") j'ai 3 clés étrangères. Ma question est simple : Comment afficher les valeurs des clés étrangères?  (voir "prf_id, "prf_name)

Ce que j'ai fait :

Code:

class Accounts extends Zend_Db_Table_Abstract{
        protected $_name = 'usr_accounts';
        protected $_rowClass = 'Accounts_Row';
        
        protected $_referenceMap = array(
            'Profile' => array(
                'columns'             => 'usr_prf_id',
                'refTableClass'        => 'Profiles',
                'refColums'            => 'prf_name',
            ),
            'Title' => array(
                'columns'            => 'usr_ttl_id',
                'refTableClass'        => 'Titles',
                'refColumns'        => 'ttl_name'
            ),
            'Company' => array(
                'columns'            => 'usr_cpn_id',
                'refTableClass'        => 'Companies',
                'refColumns'        => 'cpn_name'
            )
        );
}

Dans les 3 classes étrangères : j'ai mis ceci  "protected $_dependentTables = array('Accounts');"

Dans mon controlleur:

Code:

     $table_Account = new Accounts();
     $this->view->viewAccount = $table_Account->fetchAll();

Pour afficher :

Code:

     foreach($this -> viewAccount as $accounts){ 
    echo $this->escape($accounts->usr_id);   =>ceci marche
    echo $this->escape($accounts->usr_prf_id);    =>Je voudrais ne nom de profil et non pas l'id : "prf_id" => "prf_name" => ceci ne marche pas! 
    echo $this->escape($accounts->usr_cpn_id); => ceci marche
    echo $this->escape($accounts->usr_ttl_id);  
    }

Merci de votre aide,
Cyprien

Dernière modification par Mr.MoOx (15-02-2008 09:29:29)

Hors ligne

 

#2 14-02-2008 17:25:08

cyprien
Membre
Lieu: Niort
Date d'inscription: 14-02-2008
Messages: 10
Site web

Re: [Résolu][Zend_Db_Table Relation][1.5]Aides, Soucis clé étrangère

C'est bon !! J'ai la solution !
En fait, c'est pas si dur que ça !
Voici la solution :

Code:

class Accounts extends Zend_Db_Table_Abstract{
        protected $_name = 'usr_accounts';
        protected $_rowClass = 'Account';
        
        protected $_referenceMap = array(
(Profile est un row de la classe Profiles)'Profile' => array(
                                              'columns'             => 'usr_prf_id',
                                              'refTableClass'        => 'Profiles',
                                              'refColums'            => 'prf_id',
                                              ),
Title est un row de la classe Titles)    'Title' => array(
                                         'columns'            => 'usr_ttl_id',
                                         'refTableClass'        => 'Titles',
                                         'refColumns'        => 'ttl_id'
                                          ),
Company est un row de la classe Companies)'Company' => array(
                                                        'columns'            => 'usr_cpn_id',
                                                        'refTableClass'        => 'Companies',
                                                         'refColumns'        => 'cpn_id'
                                                      )
                      );

Dans mon controlleur:

Code:

     $table_Account = new Accounts();
     $this->view->viewAccount = $table_Account->fetchAll();

Pour afficher :

Code:

     foreach($this -> viewAccount as $accounts){ 
          echo $this->escape($accounts->usr_id);
          echo $this->escape($accounts->findParentProfiles()->prf_name);  Ici , j'ai l'affichage du nom par rapport à l'id de ma table Account !
          echo $this->escape($accounts->usr_cpn_id);
      }

J'espère vous aidez !
Merci quand même !
Cyprien

Dernière modification par Mr.MoOx (15-02-2008 09:31:25)

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