Bonjour,
Mon problème doit surement être simple mais je débute avec cakephp. J'ai donc deux table dans ma base. 'Categories' et 'Sections'. Une catégorie a plusieurs sections et une section à une catégorie. J'ai donc utilisé les modèles et les liens 'hasmany' et 'belongto'.
Model Category :
Model Section :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php class Category extends AppModel { public $hasMany = array ('Section'); } ?>
Via le controller category je fait un 'findAll' sur la table categories. Donc il me sort chaque catégorie et pour chaque catégorie il me donne les sections qui y sont associées. Ce qui me donne le résultat de requête suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php class Section extends AppModel { public $belongsTo = array( 'Category' => array( 'counterCache' => 'true' ) ); } ?>
Ce que je veux c'est afficher les sections de chaque catégories par l'intermédiaire d'un 'foreach'. Mon code est donc le suivant :
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 array( (int) 0 => array( 'Category' => array( 'id' => '1', 'name' => 'Culture générale' ), 'Section' => array( (int) 0 => array( 'id' => '1', 'name' => 'Musique', 'slug' => 'musique', 'created' => '2013-08-26 23:13:00', 'category_id' => '1', ), (int) 1 => array( 'id' => '2', 'name' => 'Film', 'slug' => 'film', 'created' => '2013-08-26 23:13:00', 'category_id' => '1', ) ) ), (int) 1 => array( 'Category' => array( 'id' => '2', 'name' => 'Vie professionnelle' ), 'Section' => array( (int) 0 => array( 'id' => '3', 'name' => 'Travail', 'slug' => 'travail', 'created' => '2013-08-26 23:14:00', 'category_id' => '2', ) ) ) )
Le problème est qu'il n'affiche pas ces fichues sections et qu'il me met un message "undefined index" :
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 <ul id="sidebar" > <? foreach ($categories as $category): ?> <li> <h2><?php echo $category['Category']['name']; ?></h2> <ul id="section"> <?php foreach ($categories as $cat) : ?> <li> <?php echo $cat['Section']['name']; ?> </li> </ul> <?php endforeach; ?> </li> <?php endforeach; ?>
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Notice (8): Undefined index: name [APP\View\categories\index.ctp, line 31]![]()
Partager