Bonjour a tous
je me demander si il etait possible de faire plusieur function afterfind dans le meme model je m explique:
dans mon model categorie j ai deja un afterfind pour le controller posts et je souhaiterais savoir si je peux en mettre un autre pour mon controller evenements.
voila ma premiere question.
ensuite je suis en train de faire un petit site j ai une table evenement tel qui suit:
CREATE TABLE IF NOT EXISTS `evenements` (
`id` int(30) NOT NULL AUTO_INCREMENT,
`content` longtext CHARACTER SET utf8 NOT NULL,
`regions` varchar(60) COLLATE utf8_bin NOT NULL,
`months` varchar(255) COLLATE utf8_bin NOT NULL,
`regions_id` int(11) NOT NULL,
`months_id` int(11) NOT NULL,
`dates_limites` date NOT NULL,
`web` varchar(255) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`),
KEY `regions_id` (`regions_id`),
KEY `months_id` (`months_id`),
KEY `regions` (`regions`),
KEY `web` (`web`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=22 ;
une table mois:
CREATE TABLE IF NOT EXISTS `months` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`months` varchar(60) NOT NULL,
`months_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `months_id` (`months_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;
une table regions:
CREATE TABLE IF NOT EXISTS `regions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`regions` varchar(100) NOT NULL,
`regions_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `regions` (`regions`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=25 ;
je souhaite faire que
un mois est plusieurs régions.
un mois est plusieurs évenements.
une régions est plusieurs évenements.
une régions est plusieurs mois.
en cliquant sur un mois les régions apparaissent et en cliquant sur les régions les evenements correspondant apparaissent
je ne m'en sort pas du tout avec les relations
hasMany,hasOne,belongsTo...
serait il possible d avoir un petit coup de pouce ;p
salut
alors tout d'abord, je pense que le problème doit de tes tables.
CREATE TABLE IF NOT EXISTS months
(
id
int(11) NOT NULL AUTO_INCREMENT,
months
varchar(60) NOT NULL,
<u><strong>months_id
int(11) NOT NULL DEFAULT '0',</strong></u>
PRIMARY KEY (id
),
KEY months\_id
(months\_id
)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;
A la place tu devrais avoir region_id. Idem ici, change
CREATE TABLE IF NOT EXISTS regions
(
id
int(11) NOT NULL AUTO_INCREMENT,
regions
varchar(100) NOT NULL,
<u><strong>regions_id
int(11) NOT NULL,</strong></u> par month_id
PRIMARY KEY (id
),
KEY regions
(regions
)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=25 ;
Ah oui ,ca doit etre au singulier et non pluriel. Month_id et region_id. Pense a le corriger dans ta première table.
Ensuite dans ton model month :
un mois est plusieurs régions.
$hasMany = array('region');
un mois est plusieurs évenements.
$hasMany = array('region','evenement');
idem pour le model region :
une régions est plusieurs évenements.
$hasMany = array('month');
une régions est plusieurs mois.
$hasMany = array('month','evenement');
Voila normalement ca devrait fonctionner, enfin il faut coder maintenant pour réaliser ce que tu veux faire. :)