Example #1
0
 public function searchforauthassignment($params)
 {
     $query = Authitem::find();
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['description' => SORT_ASC]]]);
     $query->joinWith(['authassignments', 'authitemchildrenchild']);
     $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;
     }
     $query->andFilterWhere(['type' => $this->type, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     //      $query->where('auth_item.type = 1 and (authassignments.user_id <> :user_id or authassignments.user_id is null) and  (not auth_item.name in (select b.child from auth_item_child b))', [
     $query->where('auth_item.type = 1 and (authassignments.user_id <> :user_id or authassignments.user_id is null) and (not authitemchildrenchild.parent in (select a.item_name from auth_assignment a where a.user_id = :user_id) or authitemchildrenchild.parent is null)', ['user_id' => $params['id']]);
     $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'description', $this->description])->andFilterWhere(['like', 'rule_name', $this->rule_name])->andFilterWhere(['like', 'data', $this->data]);
     $query->groupBy(['name']);
     return $dataProvider;
 }