Bonjour,
Depuis hier, je bloque sur un pbme : je cherche à utiliser la methode "Many-to-many Relationship" pour obtenir mes données mais à chaque fois j'ai l'erreur : No reference from table RelationsTermes to table TermesTaxonomies.
Voila rapidement les 3 tables (et les 3 classes concernées) :
- Idees => ces sont des idées (éléments centrale de l'appli)
- RelationsTermes => pt de jointure
- TermesTaxonomies => des termes qui st des tag ou des catégories (même méthode que wordpress)
Je cherche donc, à partir d'une idée, à récuperer TermesTaxonomies en passant par la table de jointure RelationsTermes.
Voici le code SQL
Voici les codes PHP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 CREATE TABLE IF NOT EXISTS `idee` ( `id_idee` int(5) NOT NULL auto_increment, `date_idee` timestamp NOT NULL default CURRENT_TIMESTAMP, `texte_idee` text NOT NULL, `titre_idee` varchar(25) NOT NULL, `statut_idee` enum('new','old','normal') default 'new', `id_mbr` int(5) NOT NULL, PRIMARY KEY (`id_idee`), KEY `FK_idee_id_mbr` (`id_mbr`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; CREATE TABLE IF NOT EXISTS `relation_terme` ( `id_idee` int(5) NOT NULL, `id_tt` int(5) NOT NULL, PRIMARY KEY (`id_idee`,`id_tt`), KEY `FK_relation_terme_id_tt` (`id_tt`), KEY `FK_relation_terme_id_idee` (`id_idee`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `terme_taxonomie` ( `id_tt` int(5) NOT NULL auto_increment, `taxonomy_tt` enum('tag','categorie') NOT NULL default 'tag', `description_tt` tinytext, `count_tt` int(5) default '0', `id_terme` int(5) NOT NULL, PRIMARY KEY (`id_tt`), KEY `FK_terme_taxonomie_id_terme` (`id_terme`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; ALTER TABLE `idee` ADD CONSTRAINT `FK_idee_id_mbr` FOREIGN KEY (`id_mbr`) REFERENCES `membres` (`id_mbr`); ALTER TABLE `relation_terme` ADD CONSTRAINT `FK_relation_terme_id_idee` FOREIGN KEY (`id_idee`) REFERENCES `idee` (`id_idee`), ADD CONSTRAINT `FK_relation_terme_id_tt` FOREIGN KEY (`id_tt`) REFERENCES `terme_taxonomie` (`id_tt`); ALTER TABLE `terme_taxonomie` ADD CONSTRAINT `FK_terme_taxonomie_id_terme` FOREIGN KEY (`id_terme`) REFERENCES `terme` (`id_terme`);
Idees.php
RelationsTermes.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?php class Idees extends Zend_Db_Table_Abstract { protected $_rowClass = 'Idee'; protected $_name = 'idee'; protected $_primary = 'id_idee'; protected $_dependentTables = array( 'RelationsTermes', 'Vote', 'Commentaires'); protected $_referenceMap = array( 'Membres' => array( 'columns' => array('id_mbr'), 'refTablesClass' => 'Membres', 'refColumns' => array('id_mbr') ) ); } ?>
TermesTaxonomies.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?php class RelationsTermes extends Zend_Db_Table_Abstract { protected $_name = 'relation_terme'; protected $_primary = array('id_idee','id_tt'); protected $_referenceMap = array( 'Idee' => array( 'columns' => array('id_idee'), 'refTableClass' => 'Idees', 'refColumns' => array('id_idee') ), 'Taxonomy' => array( 'columns' => array('id_tt'), 'refTablesClass' => 'TermesTaxonomies', 'refColumns' => array('id_tt') ) ); } ?>
J'espère que quelqu'un pourra trouver un erreur ou juste une idées. Je me casse la tête depuis hier ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <?php class TermesTaxonomies extends Zend_Db_Table_Abstract { protected $_name = 'terme_taxonomie'; protected $_primary = 'id_tt'; protected $_dependentTables = array('RelationsTermes'); protected $_referenceMap = array( 'Termes' => array( 'columns' => array('id_terme'), 'refTablesClass' => 'Termes', 'refColumns' => array('id_terme') ) ); } ?>
Nicolas
Partager