public function searchInbox($params) { $dataProvider = $this->search(); $dataProvider->query->where(['receiver_id' => Yii::$app->user->id, 'receiver_status' => Message::getInboxStatuses()]); if (!($this->load($params) && $this->validate())) { $dataProvider->query->joinWith(['senderUser']); return $dataProvider; } $dataProvider->query->andFilterWhere(['like', 'topic', $this->topic]); $dataProvider->query->joinWith(['senderUser' => function ($q) { $q->where(['like', User::tableName() . '.username', $this->senderName]); }]); return $dataProvider; }