Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je suis en train d'essayer de mettre en place une relation ManyToMany mais je ne comprends pas bien dans quelles class déclarer mes références...
Voici à quoi ressemble mes tables :
lng_type me sert à savoir si c'est une bande son ou des sous-titres...
Et voici mes classes :
<?php class tblLangue extends Zend_Db_Table_Abstract { protected $_dependentTables = array('tblFilmHasLangue'); } class tblFilm extends Zend_Db_Table_Abstract { protected $_dependentTables = array('tblFilmHasLangue'); } <?php class tblFilmHasLangue extends Zend_Db_Table_Abstract { protected $_referenceMap = array( 'Langues' => array( 'columns' => 'lng_id', 'refTableClass' => 'tblLangue', 'refColumns' => 'lng_id' ), 'Films' => array( 'columns' => 'flm_id', 'refTablesClass' => 'tblFilm', 'refColumns' => 'flm_id' ) ); }
Et quand dans mon rowFilm je veux recuperer les langues du films je fais =
$langues = $this -> findManyToManyRowset( 'tblLangue', 'tblFilmHasLangue' );
Et j'obtiens le message suivant : No reference from table tblFilmHasLangue to table tblFilm
J'ai essayé de le tourner dans tous les ses mais j'ai toujours le message d'erreur.
Je n'arrive pas a comprendre dans quelles classes déclarer les relations et ou dépendance de tables.
Si quelqu'un veux bien me l'expliquer je suis preneur
Cordialement,
Kaimite
Hors ligne
Je ne trouve pas la raison de ton problème mais je peux te donner un conseil.
En utilisant Doctrine dans ton projet zend, MySQL Workbench te permet de généré à l'aide d'un plugin des classe automatiquement dans ton application. C'est classe sont étendu de Doctrine_Record.
C'est ultra rapide, je fais mon schéma graphique comme toi et pouf, en quelques clics, tout est intégré dans mon application. Je te conseils vivement d'y jetter un coup d'oeil car j'ai éloigné depuis longtemps le genre de questions que tu te poses actuellement.
De plus, sans être sûr, Doctrine devrait venir avec Zend par défault dans une prochaine version (ZF2 ??)
Pour revenir à ton problème, selon moi, tu devrais déclarer un truc dans ce genre dans ta classe de film:
Exemple Doctrine:
$this->hasMany('tblFilmHasLangue as tblLangue', array( 'local' => 'id', 'foreign' => 'id'));
Hors ligne
Salut et merci pour la réponse.
J'ai avancé en utilisant mes propres méthodes mais je vais jetter un coup d'oeil a Doctrine car effectivement il sera avec le ZF2 et si en plus WorkBench peut me générer les classes.... que demander de plus
Cordialement,
Kaimite
Hors ligne