Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-01-2009 11:51:43

fa6r1ce
Nouveau membre
Date d'inscription: 20-06-2008
Messages: 5

Problème de correspondance avec une clé étrangère

Bonjours

J'ai 3 tables :

Une table languages avec 2 champs id et name. (Mes id sont du type fr_Fr, de_De, etc...)
Une table serverTypes avec 2 champs id et name
Une table severs avec 4 champs : id, name, language_id et type_id

J'ai une view dans laquelle je fais appel aux méthodes magiques :

        <?foreach ($this->Servers as $Server) :?>
            <tr>
                <td>
                    <?= $Server->id ?></td>
                <td>
                    <?= $Server->name ?></td>
                <td>
                    <?= $Server->findParentLanguages()->name?></td>
                <td>
                    <?= $Server->findParentServerTypes()->name ?></td>
                <td>                               
            </tr>
        <? endforeach; ?>

Dans la table servers toutes les id_language sont  égales à fr_FR or sur la vue il y a allemand ce qui correspond à la clé de_De (la premiere dans la table).

Toujours dans la table servers toutes les id_type sont égales à 1 ce qui correspond à prod or il m'affiche dev (la première valeur)

C'est un peu comme si il trouvait les tables jointes mais ne faisait pas le rattachement avec la clé étrangère dans la table.

A quel endroit ai-je raté la marche s'il vous plait ;o) répondez moi avant que je pète une durite ;o)

class Servers extends Zend_Db_Table_Abstract {
    /**uag
     * The default table name
     */
    protected $_name            = 'servers';
    protected $_primary         = 'id';
    protected $_rowClass        = 'Server';
    protected $_referenceMap    = array(
        'language' => array(
            'colums'        => array('language_id'),
            'refTableClass' => 'Languages',
            'refColumns'    => array('id')
        ),
        'Server' => array(
            'colums'        => array('type_id'),
            'refTableClass' => 'ServerTypes',
            'refColumns'    => array('id')
        )
    );

/**
* Languages

* @author fa6r1ce
* @version
*/

class Languages extends Zend_Db_Table_Abstract {
    /**
     * The default table name
     */
    protected $_name     = 'languages';
    protected $_primary  = 'id';
    protected $_rowClass = 'Language';
       
    protected $_dependentTables = array('Servers');

/**
* ServerTypes

* @author fa6r1ce
* @version
*/

require_once 'Zend/Db/Table/Abstract.php';

class ServerTypes extends Zend_Db_Table_Abstract {
    /**
     * The default table name
     */
    protected $_name     = 'serverTypes';
    protected $_primary  = 'id';
    protected $_rowClass = 'ServerType';   
   
    protected $_dependentTables = array('Servers');

}


/**
* Language

* @author fa6r1ce
* @version
*/

class Language extends Zend_Db_Table_Row_Abstract {
   
}

/**
* Server

* @author fa6r1ce
* @version
*/

class Server extends Zend_Db_Table_Row_Abstract {

}


/**
* ServerType

* @author fa6r1ce
* @version
*/

class ServerType extends Zend_Db_Table_Row   {

}

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