Bonjour,
J'essaye d'afficher les enfants qui accompagne les commentaires.
J'ai fait une requête : find(‘threaded’); sur ma table comments
$comments = $this->Comment->find('threaded',array(
'conditions' => array('Comment.ref'=>'User','Comment.ref_id'=>$user'User']'id']),
'limit' => 5,
'order' => 'Comment.id DESC',
'fields' => array('Comment.id','Comment.username','Comment.ref','Comment.id','Comment.created','Comment.content','Comment.user_id','Comment.parent_id')
));
Quand je fait un debug($comments) ça me sort ceci :
array(
(int) 0 => array(
'Comment' => array(
'id' => '4',
'username' => 'MusicalityMaker',
'ref' => 'User',
'created' => '2014-02-15 20:46:45',
'content' => 'Jai pas d'enfants',
'user_id' => '1',
'parent_id' => '0'
),
'children' => array()
),
(int) 1 => array(
'Comment' => array(
'id' => '1',
'username' => 'MusicalityMaker',
'ref' => 'User',
'created' => '2014-02-15 20:22:43',
'content' => 'Je suis un commentaire',
'user_id' => '1',
'parent_id' => '0'
),
'children' => array(
(int) 0 => array(
'Comment' => array(
'id' => '3',
'username' => 'MusicalityMaker',
'ref' => 'User',
'created' => '2014-02-15 20:33:59',
'content' => 'Réponse 2',
'user_id' => '1',
'parent_id' => '1'
),
'children' => array()
),
(int) 1 => array(
'Comment' => array(
'id' => '2',
'username' => 'MusicalityMaker',
'ref' => 'User',
'created' => '2014-02-15 20:23:10',
'content' => 'Je suis une réponse au commentaire',
'user_id' => '1',
'parent_id' => '1'
),
'children' => array()
)
)
)
)
Je fait un foreach classique ça me dit erreur :
Notice (8): Undefined index: children [APP/View/Users/profil.ctp, line 94]
Warning (2): Invalid argument supplied for foreach() [APP/View/Users/profil.ctp, line 94]
voici mon foreach qui est posé afficher les enfants des commentaire :
<?php foreach($comments'children'] as $c): ?>
<?php endforeach; ?>
Merci de votre aide.
Je dirai qu'il faut d'abord boucler sur les commentaires puis ensuite boucler sur les enfants du même commentaire :
foreach($comments as $k => $v):
echo($v'Comment']'content']);
foreach($v'children'] as $kc => $vc):
echo($vc'Comment']'content']);
endforeach;
endforeach;
A tester, mais ça me semble bon.