$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
относится к поиску, то я его дополнил вторым параметрам. Так как у меня 4 таблицы админ, мастер, дизайнер и магазины, в каждой таблице я передал string и в ZakazSearch я распределил значение и какиой запрос выполнять при этом на примере в контроллере $dataProvider = $searchModel->search(Yii::$app->request->queryParams, 'shop');
public function search($params, $role)
{
$query = Zakaz::find();
switch ($role) {
case 'master':
$query->andWhere(['status' => Zakaz::STATUS_MASTER, 'action' => 1]);
break;
case 'disain':
$query->andWhere(['status' => Zakaz::STATUS_DISAIN, 'action' => 1]);
break;
case 'shop':
$query->andWhere(['id_sotrud' => Yii::$app->user->id, 'action' => 1]);
break;
case 'admin':
$query->andWhere(['action' => 1]);
break;
}
'action' => ['master'],
$dataProvider = new ActiveDataProvider([
'query' => Zakaz::find()->where(['id_sotrud' => Zakaz::STATUS_DISAIN])
]);
public function searchDisain($params)
{
$query = Zakaz::find()->where(['status' => '5']);
// add conditions that should always apply here
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => [
'defaultOrder' => ['srok' => SORT_DESC],
]
]);
$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_zakaz' => $this->id_zakaz,
'srok' => $this->srok,
'id_sotrud' => $this->id_sotrud,
'id_tovar' => $this->id_tovar,
'oplata' => $this->oplata,
'data' => $this->data,
'name' => $this->name,
'email' => $this->email,
]);
$query->andFilterWhere(['like', 'prioritet', $this->prioritet])
->andFilterWhere(['like', 'status', $this->status])
->andFilterWhere(['like', 'name', $this->name])
->andFilterWhere(['like', 'phone', $this->phone])
->andFilterWhere(['like', 'email', $this->email]);
// ->andFilterWhere(['like', 'description', $this->description])
// ->andFilterWhere(['like', 'information', $this->information])
// ->andFilterWhere(['like', 'comment', $this->comment]);
return $dataProvider;
}