Как отобразить количество записей связанной модели с CakePHP? - PullRequest
1 голос
/ 29 апреля 2010

У меня две модели. Допустим, они являются "сообщения" и "комментарии". В представлении администратора для сообщений я хочу показать, сколько комментариев к этому сообщению Я запутался в том, где поставить код. В контроллере или виде? Я хотел бы, чтобы это было в контроллере.

Ответы [ 2 ]

3 голосов
/ 29 апреля 2010

Другой вариант - кэшировать ваш счет .При таком подходе вы добавляете поле comment_count в таблицу posts, а затем изменяете ассоциацию Comment модели *1005* следующим образом:

class Comment extends AppModel
{
    var $belongsTo = array(
        'Post' => array( 'counterCache' => true )
    );
}

В любое время новая запись Commentсоздается, comment_count связанной записи Post увеличивается и уменьшается при каждом удалении связанной Comment.

0 голосов
/ 29 апреля 2010

Да, вы правы. Вы должны получить данные в контроллере, а затем отобразить их в виде. И то, что вы описываете в своем вопросе, точно такое же, как пример в кулинарной книге . Предположим, у вас есть связанный затем с Post hasMany Comment, вы можете найти счет, используя:

$comment_count = $this->Post->Comment->find('count',array('conditions'=>array('Comment.post_id'=>$postid)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...