/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = FacetSet::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $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(['id' => $this->id]); $query->andFilterWhere(['like', 'name', $this->name]); return $dataProvider; }
public function actionView($path, Request $request) { $model = $this->findModel($path); /** @var \im\search\components\SearchManager $searchManager */ $searchManager = Yii::$app->get('searchManager'); $query = $request->get('query', ''); $searchComponent = $searchManager->getSearchComponent(); /** @var FacetSet $facetSet */ $facetSet = FacetSet::findOne(1); $facets = $facetSet->facets; $query = $searchComponent->getQuery('product', $query, $facets); $dataProvider = new SearchDataProvider(['query' => $query]); $dataProvider->prepare(); $this->_searchResult = $dataProvider->query->result(); return $this->render('view', ['model' => $model, 'dataProvider' => $dataProvider]); }
/** * Finds the FacetSet model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return FacetSet the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = FacetSet::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
/** * Returns category facets. * * @param Category $category * @return \im\search\components\query\facet\FacetInterface[] */ public function getFacets(Category $category) { $facetSet = FacetSet::findOne(1); $facets = $facetSet->facets; return $facets; }