Im trying to count the associated data of items.
"Feeds"
"Feed_Likes" (Foreign Key Feed_id)
"User_Feedhistorys" (Foreign Key Feed_id)
The "User_Feedhistorys" table contains a list of usernames and Feed_id's of "viewed" feeds.
The Feed_Likes table contains a Feed_id and the username who liked the feed.
Id like to count the "Feed_likes" of each feed in the feed table and count the umber of entries in the "User_Feedhistorys" table for each feed.
Ive read the manual many times and im stuck. I cant get one of the items counted and returned as a virtual field but not both. How can i combine the below or re-write the function to work as indeded.
The below function only gets one or the other, can you help please?
public function findFeedViewCount(Query $query, array $options){
/*return $query = $this->find()
->select(['view_count' => $query->func()->count('UserFeedhistorys.feed_id')])
->leftJoinWith('UserFeedhistorys')
->group(['Feeds.id'])
->contain(['FeedCategories', 'FeedOwners','UserFeedsubscriptions','FeedLikes','UserFeedhistorys'])
->autoFields(true);*/
return $query = $this->find()
->select(['like_count' => $query->func()->count('FeedLikes.feed_id')])
->leftJoinWith('FeedLikes')
->group(['Feeds.id'])
->contain(['FeedCategories', 'FeedOwners','UserFeedsubscriptions','FeedLikes','UserFeedhistorys'])
->autoFields(true);
}