limit = 10; $this->offset = 0; $this->user_id = null; $this->toDate = date('Y-m-d', time()); $this->fromDate = date('Y-m-01', time()); parent::__construct($config); } public function rules(): array { return [ [['fromDate', 'toDate'], 'date', 'format' => 'php:Y-m-d'], [['limit', 'offset', 'user_id'], 'integer', 'min' => 0], ]; } public function byParams() { $queryBuilder = Reports::find() ->with('task') ->andWhere(['between', 'reports.created_at', $this->fromDate, $this->toDate, $this->user_id]) ->limit($this->limit) ->offset($this->offset); if(isset($this->user_id)) { $userCardId = UserCard::findByUserId($this->user_id)->id; $queryBuilder->andWhere(['user_card_id' => $userCardId]); } $data = $queryBuilder->asArray()->all(); return $data; } }