Я все еще относительно новичок в CakePHP, но я использую встроенный counterCache в Cake 1.2 для отслеживания количества записей hasMany для родительской Модели в одном из моих приложений.Создайте поле в вашей родительской модели для хранения счетчика hasMany и включите counterCache в свойстве $ ownTo для дочерней модели, и все готово.Он автоматически обновляет поле счетчика counterCache в родительской модели всякий раз, когда число записей hasMany увеличивается / уменьшается.Мне нравится этот метод отслеживания, так как он делает контроллер немного чище, если все, что вам нужно, это счет без каких-либо других условий.
Документы: http://book.cakephp.org/view/816/counterCache-Cache-your-count
Кроме того, я все еще новичокв MVC, но я думаю, что если вы собираетесь собирать счет с помощью частного / защищенного метода контроллера, вы хотите вызвать его в контроллере и затем отправить данные в представление, а не выполнять фактический метод из представленияв этом сценарии.