/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = ProviderServices::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $query->andFilterWhere(['id' => $this->id, 'provider_id' => $this->provider_id, 'provider_industry_id' => $this->provider_industry_id, 'service_id' => $this->service_id, 'industry_id' => $this->industry_id, 'is_set' => $this->is_set, 'update_time' => $this->update_time]);
     return $dataProvider;
 }
 protected function saveProviderService($user = null, $service = null, $newProvider)
 {
     if ($user and $service) {
         if (!$newProvider and $user->provider and $prs = ProviderServices::find()->where('provider_id=' . $user->provider->id . ' AND service_id=' . $service->id)->all()) {
             return $prs[0];
         } else {
             $proserv = new ProviderServices();
             $proserv->provider_industry_id = $user->provider->industries[0]->id;
             $proserv->provider_id = $user->provider->id;
             $proserv->industry_id = $service->industry_id;
             $proserv->service_id = $service->id;
             $proserv->is_set = 1;
             $proserv->update_time = date('Y-m-d H:i:s');
             if ($proserv->save()) {
                 return $proserv;
             }
             return false;
         }
     }
     return false;
 }