Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
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 :
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:
$table_Account = new Accounts(); $this->view->viewAccount = $table_Account->fetchAll();
Pour afficher :
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
C'est bon !! J'ai la solution !
En fait, c'est pas si dur que ça !
Voici la solution :
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:
$table_Account = new Accounts(); $this->view->viewAccount = $table_Account->fetchAll();
Pour afficher :
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
Pages: 1