/** * Returns vount unreaded messages for user * @return int */ public function actionCount() { return Message::find()->byRecipient()->unread()->count(); }
/** * Returns data provider for messages * @return object|ActiveDataProvider * @throws \yii\base\InvalidConfigException */ public function getDataProvider() { if (is_null($this->_dataProvider)) { $query = Message::find()->byContact($this->contactId, $this->userId)->with(['author', 'recipient']); if (is_callable($this->queryModifier)) { $func = $this->queryModifier; $func($query); } $this->_dataProvider = Yii::createObject(ArrayHelper::merge(['class' => ActiveDataProvider::className(), 'query' => $query], $this->dataProviderOptions)); $this->_dataProvider->sort->defaultOrder = $this->defaultOrder; $this->_dataProvider->pagination->pageSize = $this->pageSize; } return $this->_dataProvider; }