Получить количество записей из связанной таблицы в CakePHP 2.4
Я только что создал пример блогового приложения, которое работает хорошо.
Но в дополнение к этому я хочу отобразить количество комментариев для каждого блога на странице списка блогов.
Как я мог получить это?
Таблицы являются:
- блоги
- Комментарии
каждый блог может иметь много комментариев. это мне нужно получить то есть сколько комментариев для конкретного блога там.
1 ответ
Использовать кеш счетчика
Один простой способ добиться этого, предполагая, что комментарий принадлежит блогу, - это использовать counterCache.
Это означает добавление поля для хранения счетчиков в таблицу блогов:
alter table blogs add comment_count int(11) default 0;
Добавление счетчика кеша в определение ассоциации для комментариев:
class Comment extends AppModel {
public $belongsTo = array(
'Blog' => array(
'counterCache' => true,
)
);
}
И затем, всякий раз, когда комментарий создается или удаляется, значение поля comment_count будет обновляться в таблице блогов.