/** * Returns number of new user messages. * @return integer */ public function getNewMessagesCount() { $cache = Cache::getInstance()->getElement('user.newmessages', $this->id); if ($cache === false) { $cache = (new Query())->from(MessageReceiver::tableName())->where(['receiver_id' => $this->id, 'receiver_status' => Message::STATUS_NEW])->count(); Cache::getInstance()->setElement('user.newmessages', $this->id, $cache); } return $cache; }