/** * Creates data provider instance with search query applied * * @param array $params * * @return ArrayDataProvider */ public function search($params) { $query = new ArrayQuery(Yii::$app->authManager->getRules()); if ($this->load($params) && $this->validate()) { $query->addCondition('name', $this->name ? "~{$this->name}" : null); } return new ArrayDataProvider(['allModels' => $query->find(), 'sort' => ['attributes' => ['name']], 'pagination' => ['pageSize' => 25]]); }
/** * Returns data provider with filled models. Filter applied if needed. * @param array $params * @param array $models * @return \yii\data\ArrayDataProvider */ public function search($params, $models) { $dataProvider = new ArrayDataProvider(['allModels' => $models, 'pagination' => ['pageSize' => 50], 'sort' => ['attributes' => []]]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } if (!empty($this->name)) { $query = new ArrayQuery($models); $dataProvider->allModels = $query->addCondition('name', 'like ' . $this->name)->find(); } return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return \yii\data\ActiveDataProvider|\yii\data\ArrayDataProvider */ public function search($params) { $authManager = Yii::$app->getAuthManager(); if ($this->type == Item::TYPE_ROLE) { $items = $authManager->getRoles(); } else { $items = array_filter($authManager->getPermissions(), function ($item) { return $this->type == Item::TYPE_PERMISSION xor strncmp($item->name, '/', 1) === 0; }); } $query = new ArrayQuery($items); $this->load($params); if ($this->validate()) { $query->addCondition('name', $this->name ? "~{$this->name}" : null)->addCondition('ruleName', $this->ruleName ? "~{$this->ruleName}" : null)->addCondition('description', $this->description ? "~{$this->description}" : null); } return new ArrayDataProvider(['allModels' => $query->find(), 'sort' => ['attributes' => ['name']], 'pagination' => ['pageSize' => 25]]); }