/** * Ñîçäàíèå íîâîãî ñîîáùåíèÿ * @param $message * @param $recipient, id ïîëó÷àòåëÿ * @return ChatMessage */ public static function createNew($message, $recipient) { $cm = new ChatMessage(); $cm->message = $message; $cm->recipient_id = $recipient; $cm->sender_id = Yii::$app->user->identity->id; $cm->status = self::STATUS_NEW; $cm->save(); return $cm; }
/** * Сообщения отмечаются как прочитанные */ public function actionReadTalkMessages() { $sender = $_POST['sender_id']; $unreadMessages = ChatMessage::find()->where(['sender_id' => $sender, 'recipient_id' => Yii::$app->user->identity->id])->all(); foreach ($unreadMessages as $um) { $um->status = ChatMessage::STATUS_READ; $um->save(); } }
/** * Общее количество непрочитанных сообщений */ public function getUnreadMessageCount() { $count = ChatMessage::find()->where(['recipient_id' => $this->id, 'status' => ChatMessage::STATUS_NEW])->andWhere('sender_id <> ' . $this->id)->count(); return $count; }