How to populate ActiveDataProvider with query result?

hi i want to execute a query whose result should be the input to active data provider. here’s what i have done

  public function search_year($params,$year_start,$year_end,$theatre,$movie_name)


		$userid		=	\Yii::$app->getRequest()->getCookies()->getValue('users_backend_id');

		$mod		=	Theatres::find()->where(['users_backend_id'=>$userid])->all();//print_r($mod);die();

		$moviestable	= Movies:: find()->where(['movie_name'=>$movie_name])->one();

		if($theatre==null && $movie_name==null)


			$query1 = new Query;		



						'screen_ticket_booking_history.booking_id As Booking_id',

						'screen_ticket_booking_history.booking_date As Booking_date',

						'movies.movie_name As Movie',

						'theatres.theatre_name As Theatre',

						'screen_ticket_booking_history.amount As Amount',



				  ->join('LEFT OUTER JOIN','movies','')

				  ->join('LEFT OUTER JOIN','theatres','')

				  ->join('LEFT OUTER JOIN','users_backend','')

				  ->where('booking_date >= :start_date', [':start_date' => $year_start])

				  ->andWhere('booking_date <= :end_date', [':end_date' => $year_end])

				  ->andWhere('theatres.users_backend_id = :id', [':id' => $userid]);


				  $command 	= $query1->createCommand();

				  $query 	= $command->queryAll();





			$dataProvider = new ActiveDataProvider([

				'query' => $query,



			if (!$this->validate()) {

            // uncomment the following line if you do not want to any records when validation fails

            // $query->where('0=1');

				return $dataProvider;



            'id' => $this->id,

            'booking_id' => $this->booking_id,

            'booking_date' => $this->booking_date,

            'show_date' => $this->show_date,

            'movie_id' => $this->movie_id,

            'theatre_id' => $this->theatre_id,

            'screen_id' => $this->screen_id,

            'show_time_id' => $this->show_time_id,

            'amount' => $this->amount,

            //~ 'user_id' => $user->id,

            'location_id' => $this->location_id,

            'created_by' => $this->created_by,

            'created_at' => $this->created_at,

            'updated_by' => $this->updated_by,

            'updated_at' => $this->updated_at,

            'is_deleted' => $this->is_deleted,


			 $query->andFilterWhere(['like', 'booking_id', $this->booking_id])

				->andFilterWhere(['like', 'email', $this->email])

				->andFilterWhere(['like', 'mobile', $this->mobile])

				->andFilterWhere(['like', 'seat_info', $this->seat_info]);

			return $dataProvider;


but i am getting a error like

Call to a member function andFilterWhere() on a non-object

when i printed the result of the query there are values in there.

$query = User::find();

//Not a 

$query = User::find()->all();

//Make Difference

My link