2012-04-13 3 views
2

Я использую CakePHP 2.0 Мои модель отношения следующим образом:CakePHP Countercache - логический вопрос

Пользователя имеет много Сообщения

сообщение имеет много Комментария

сообщения имеет много Like

Комментарий имеет много Как

В сообщении таблицы я добавил колонку «like_count» и включить countercache и В замечании таблицы я добавил столбец «like_count» и включить countercache

ЛЮБИТ таблицу содержит:

идентификатор, post_id, comment_idu, user_id

и модель выглядит следующим образом:

public $belongsTo = array(
    'Post' => array(
     'className' => 'Post', 
     'foreignKey' => 'post_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '', 
     'counterCache' => true 
    ), 
    'Comment' => array(
     'className' => 'Comment', 
     'foreignKey' => 'comment_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '', 
     'counterCache' => true 
    )) 

Его работает отлично ..

Но теперь мне нужно сделать всего как кол (Post как кол + комментарий, как подсчета) для каждого пользователя. поэтому я планировал добавить поле в таблицу пользователей, а включить встречный стол. Но полностью поражен .. каким будет столбец имя мне нужно добавить в таблицу пользователей и где мне нужно поставить Countercache => true. Я не собираюсь идти дальше ..

ответ

1

Добавить следующее в ваш массив $ attribTo.

'User' => array(
     'className' => 'User', 
     'foreignKey' => 'user_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '', 
     'counterCache' => true 
    ), 

И вы добавите like_count столбец в таблице users.


И в вашем UserModel вам нужно добавить HasMany для подобных конечно.

+0

Его работы .. хорошо – AnNaMaLaI

+0

Рад помочь! – Joep

Смежные вопросы