/** * @param array $params * @return ArrayDataProvider */ public function search(array $params = []) { $query = (new Query())->select(['name', 'data', 'created_at', 'updated_at'])->from($this->authManager->ruleTable)->orderBy(['name' => SORT_ASC]); $this->load($params); if (!$this->validate()) { $query->where('0=1'); } $query->andFilterWhere(['name' => $this->name]); return \Yii::createObject(['class' => ActiveDataProvider::className(), 'query' => $query, 'db' => $this->authManager->db, 'sort' => ['attributes' => ['name', 'created_at', 'updated_at']]]); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Country::find(); $dataProvider = Yii::createObject(['class' => ActiveDataProvider::className(), 'query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['population' => $this->population]); $query->andFilterWhere(['like', 'code', $this->code])->andFilterWhere(['like', 'name', $this->name]); return $dataProvider; }
/** * Возвращает провайдер данных * @return ActiveDataProvider */ public function publicSearch() { $query = $this->find(); $query->modelClass = get_parent_class($this); if ($this->validate()) { $query->bySections($this->sectionsIds); foreach ($this->metaFields->fields as $field) { $field->applySearch($query); } } else { $query->where(new Expression("1!=1")); } $dataProvider = Yii::createObject(['class' => ActiveDataProvider::className(), "query" => $query]); return $dataProvider; }
/** * @inheritdoc */ public function run() { $this->registerAssets(); $this->processDelete(); /** @var Comments\models\Comment $CommentModel */ $CommentModel = \Yii::createObject(Comments\Module::instance()->model('comment')); $CommentsQuery = $CommentModel::find()->byEntity($this->entity); if (false === $this->showDeleted) { $CommentsQuery->withoutDeleted(); } $CommentsDataProvider = \Yii::createObject(['class' => \yii\data\ActiveDataProvider::className(), 'query' => $CommentsQuery->with(['author', 'lastUpdateAuthor']), 'pagination' => $this->pagination, 'sort' => $this->sort]); $params = $this->viewParams; $params['CommentsDataProvider'] = $CommentsDataProvider; $content = $this->render($this->viewFile, $params); return Html::tag('div', $content, $this->options); }
/** * Returns data provider with filled models. Filter applied if needed. * * @param array $params an array of parameter values indexed by parameter names * @return ActiveDataProvider */ public function search($params) { $this->load($params) && $this->validate(); /** @var \yii\db\BaseActiveRecord $Model */ $Model = Instance::ensure(['class' => Changelog::className()]); /** @var ChangelogQuery $ChangelogQuery */ $ChangelogQuery = $Model::find(); if (!empty($this->action)) { $ChangelogQuery->byAction($this->action); } if (!empty($this->entity_type)) { $ChangelogQuery->byEntityType($this->entity_type); } if (!empty($this->entity_id)) { $ChangelogQuery->byEntityId($this->entity_id); } /** @var ActiveDataProvider $DataProvider */ $DataProvider = \Yii::createObject(['class' => ActiveDataProvider::className(), 'query' => $ChangelogQuery, 'sort' => ['defaultOrder' => ['created_at' => SORT_DESC]]]); return $DataProvider; }
/** * Возвращает провайдер данных для отображения списка фотогалерей в публичной части * @return \yii\data\ActiveDataProvider * @throws \yii\base\InvalidConfigException */ public function publicSearch() { $query = $this->find()->published(); $dataProvider = Yii::createObject(['class' => ActiveDataProvider::className(), "query" => $query]); return $dataProvider; }
/** * Возвращает объект провайдера данных * @return object|ActiveDataProvider * @throws \yii\base\InvalidConfigException */ public function getDataProvider() { if (is_null($this->_dataProvider)) { $query = Review::find()->published()->byItem($this->itemId, $this->modelClass); if (is_callable($this->queryModifier)) { $func = $this->queryModifier; $func($query); } $config = ArrayHelper::merge($this->dataProviderConfig, ['class' => ActiveDataProvider::className(), 'query' => $query]); $this->_dataProvider = Yii::createObject($config); $this->_dataProvider->pagination->pageSize = $this->pageSize; $this->_dataProvider->sort->defaultOrder = $this->orderBy; } return $this->_dataProvider; }
/** * Возвращает провайдер данных для поиска * @param array $params массив значений атрибутов модели * @param array $dataProviderConfig параметры провайдера данных * @param \common\db\ActiveQuery $query запрос * @return \yii\data\ActiveDataProvider */ public function search($params, $dataProviderConfig = [], $query = null) { $fields = $this->getMetaFields()->getFields(); $query = $query ? $query : static::find(); $config = array_merge(['class' => ActiveDataProvider::className(), "query" => $query], $dataProviderConfig); $dataProvider = Yii::createObject($config); $dataProvider->getSort()->defaultOrder = $this->_defaultSearchOrder; $this->load($params); $this->validate(); foreach ($fields as $field) { if ($field->search) { $field->applySearch($query); } } return $dataProvider; }
/** * Поиск новостей по категориям. Если идентификаторы категорий не заданы выбираются все элементы. * @param null|array $ids массив идентификаторов категорий * @return \yii\data\ActiveDataProvider провайдер данных * @throws \yii\base\InvalidConfigException */ public function searchBySection($ids = null) { $query = $this->find()->bySections($ids); $dataProvider = Yii::createObject(['class' => ActiveDataProvider::className(), "query" => $query]); return $dataProvider; }
/** * Имя класса дата-провайдера * @return string */ public function dataProviderClassName() { return ActiveDataProvider::className(); }
/** * Returns data provider for contacts * @return object|ActiveDataProvider * @throws \yii\base\InvalidConfigException */ public function getDataProvider() { if (is_null($this->_dataProvider)) { $query = Contact::find()->byUser($this->userId)->with(['lastMessage', 'lastMessageAuthor']); if (is_callable($this->queryModifier)) { $func = $this->queryModifier; $func($query); } $this->_dataProvider = Yii::createObject(ArrayHelper::merge(['class' => ActiveDataProvider::className(), 'query' => $query], $this->dataProviderOptions)); $this->_dataProvider->sort->defaultOrder = $this->defaultOrder; $this->_dataProvider->pagination->pageSize = $this->pageSize; } return $this->_dataProvider; }
/** * @inheritdoc */ public function init() { $skin = $this->skinAsset; if ($skin) { $skin::register($this->view); } CommentsAsset::register($this->view); $parent = Model::findOne(TActiveRecord::ROOT_ID); $query = $parent->children()->published()->andWhere(["model" => $this->modelClass, "item_id" => $this->itemId]); if (is_callable($this->queryModifier)) { $func = $this->queryModifier; $func($query); } $config = array_merge(['class' => ActiveDataProvider::className(), "query" => $query], $this->dataProviderConfig); $this->dataProvider = Yii::createObject($config); $this->dataProvider->getPagination()->pageSize = $this->pageSize; $id = $this->getId(); $this->view->registerJs("\$('#{$id}').commentsWidget()"); }