Bonjour,
Je débute avec cakePHP et j'ai un problème tout simple. Je l'expose.
J'ai des pays et des continents.
Un pays appartient à un continent.
J'ai créé deux tables, les modèles, les vues, les controllers.
C'est au niveau de l'association à la mode cakePHP que j'ai du mal, je m'explique.
Voici la définition de mes modèles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php class Pays extends AppModel { var $displayField ='nom'; var $belongsTo = array( 'Continent' => array( 'classname' => 'Continent')); }Dans un premier temps, j'ai cherché à afficher les pays avec les infos du continent associé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php class Continent extends AppModel { var $displayField ='nom'; var $hasMany = array( 'Pays' => array( 'classname' => 'Pays', 'foreignKey' => 'continent_id', )); }
dans le controller des pays :
et dans la vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 all = $this->Pays->find('all'); $this->set('all', $all);
Ca fonctionne nickel, j'ai chaque pays avec les infos de son continent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <pre><?php echo 'all:'; print_r($all); ?></pre>
Maintenant, je veux afficher la liste des continents et avec chacun d'eux la liste des pays associés, or je n'y arrive pas.
Voilà le code dans le controller des continents :
et le code dans la vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $aa = $this->Continent->find('all'); $this->set('aa', $aa);
Rien n'y fait, je n'ai que la liste des continents sans aucun pays.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <pre><?php echo 'aa:'; print_r($aa); ?></pre>
Je pensais que la jointure serait automatique grâce à "hasMany", ce n'est pas ça ?
Merci pour votre aide.
A bientôt
Partager