Обновить родительскую модель от дочерней (принадлежащей) модели

У меня есть сообщения и комментарии, и пользователи могут "Нравится" либо. Я использую торт PHP.

Каждая из таблиц "Посты и комментарии" имеет строку "лайки", потому что я не хочу пересчитывать лайки при каждой загрузке поста / комментариев. У меня тоже есть таблица Likes, которая содержит идентификаторы (post post, id пользователя), чтобы я знал, что пользователям что-то "понравилось".

Мне было интересно, как я могу установить эти отношения в моделях в cakePHP, а также как я обновлю поле Posts.likes, добавляя новый лайк в таблицу Likes.

Я настроил Likes для постов и комментариев "ownTo" в Like-модели, и на данный момент мой LikesController.php выглядит так:

public function add(){
...
    if ($this->Like->save($this->request->data)) {
      //like is added to Likes table, now how to add to the "parent" Post or Comment??
    }
...
}

1 ответ

Решение

Держите ваши столы, как они есть, но добавьте like_count поле к вашему posts а также comments столы.

Также добавьте comment_count к posts Таблица.

Затем просто используйте counterCache CakePHP, и он будет автоматически отслеживать количество лайков и комментариев на пост.

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