Получить количество записей из связанной таблицы в CakePHP 2.4

Я только что создал пример блогового приложения, которое работает хорошо.

Но в дополнение к этому я хочу отобразить количество комментариев для каждого блога на странице списка блогов.

Как я мог получить это?

Таблицы являются:

  1. блоги
  2. Комментарии

каждый блог может иметь много комментариев. это мне нужно получить то есть сколько комментариев для конкретного блога там.

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 будет обновляться в таблице блогов.

Другие вопросы по тегам