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