Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. public function prepareDataProvider()
  2. {
  3. /* @var $modelClass yiidbActiveRecord */
  4. $modelClass = $this->modelClass;
  5.  
  6. $query = $modelClass::find()
  7. ->where('published=1')
  8. ->select([
  9. 'id',
  10. 'city_id',
  11. 'city_district_id',
  12. 'seller_net_id',
  13. 'name',
  14. 'address',
  15. 'type',
  16. ]);
  17.  
  18. // filters
  19. if ($city_id = Yii::$app->request->getQueryParam('city_id'))
  20. $query->andWhere('city_id = :city_id',[':city_id'=>$city_id]);
  21. if ($city_district_id = Yii::$app->request->getQueryParam('city_district_id'))
  22. $query->andWhere('city_district_id = :city_district_id',[':city_district_id'=>$city_district_id]);
  23. $city_name = Yii::$app->request->getQueryParam('name');
  24. if ($city_name && mb_strlen($city_name) >= Yii::$app->params['minSearchChars'])
  25. $query->andWhere(['LIKE' ,'name',strtr($city_name,['%'=>'%', '_'=>'_', '\'=>'\\']).'%', false]);
  26.  
  27. return new ActiveDataProvider([
  28. 'query' => $query
  29. ]);
  30. }
  31.  
  32. /**
  33. * Creates data provider instance with search query applied
  34. *
  35. * @param array $params
  36. *
  37. * @return ActiveDataProvider
  38. */
  39. public function search($params)
  40. {
  41. $query = Location::find();
  42. $dataProvider = new ActiveDataProvider([
  43. 'query' => $query,
  44. ]);
  45.  
  46. $this->load($params);
  47.  
  48. if (!$this->validate()) {
  49. // uncomment the following line if you do not want to any records when validation fails
  50. // $query->where('0=1');
  51. return $dataProvider;
  52. }
  53.  
  54. $query->joinWith(array('client','address'));
  55.  
  56. $query->andFilterWhere([
  57. 'id' => $this->id,
  58. ]);
  59.  
  60. $query->andFilterWhere(['like', 'name', $this->name])
  61. ->andFilterWhere(['like', 'd_client.name', $this->client_id])
  62. ->orFilterWhere(['like','d_address.address1',$this->address_id])
  63. ->orFilterWhere(['like','d_address.address2',$this->address_id])
  64. ->orFilterWhere(['like','d_address.address3',$this->address_id]);
  65.  
  66. return $dataProvider;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement