Используйте свойство counterCache в отношении Post-> Comment и убедитесь, что у вас есть поле comment_count в модели поста.
IE:
<?php
class Post extends AppModel {
public $name = 'Post';
public $hasMany = array(
'Comment' => array(
'className' => 'Comment',
'foreignKey' => 'post_id'
)
);
}
?>
<?php
class Comment extends AppModel {
public $name = 'Comment';
public $belongsTo = array(
'Post' => array(
'className' => 'Comment',
'counterCache' => true
)
);
}
?>
// in the database table for table posts make sure to do the following
add a column: comment_count int(11) default 0
Теперь, когда вы добавляете новыйpost, у вас будет поле comment_count с начальным значением 0. Когда новый комментарий добавляется или удаляется из сообщения, значение счетчика автоматически обновляется.
Это позволяет вам просто циклически перемещаться по массиву posts ивыведите значение поля comment_count или используйте его для проверки комментариев, затем вставьте элемент и т. д.