Обновить родительскую модель от дочерней (принадлежащей) модели
У меня есть сообщения и комментарии, и пользователи могут "Нравится" либо. Я использую торт 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, и он будет автоматически отслеживать количество лайков и комментариев на пост.