public function run($q) { $search = Yii::$app->search; $searchData = $search->search($q); $dataProvider = new ArrayDataProvider(['allModels' => $searchData, 'pagination' => ["pageSize" => $this->pageSize]]); return $this->controller->render($this->getTemplate(), ['models' => $dataProvider->getModels(), 'pagination' => $dataProvider->getPagination()]); }
public function actionIndex($q = '') { /** @var \himiklab\search\Search $search */ $search = Yii::$app->search; $searchData = $search->find($q); $dataProvider = new ArrayDataProvider(['allModels' => $searchData['results'], 'pagination' => ['pageSize' => self::PAGE_SIZE]]); return $this->render('index', ['hits' => $dataProvider->getModels(), 'pagination' => $dataProvider->getPagination(), 'query' => $searchData['query']]); }
public function actionSearch($q = '') { /** @var \himiklab\yii2\search\Search $search */ $search = \Yii::$app->search; $searchData = $search->find($q); // Search by full index. //$searchData = $search->find($q, ['model' => 'page']); // Search by index provided only by model `page`. $dataProvider = new ArrayDataProvider(['allModels' => $searchData['results'], 'pagination' => ['pageSize' => 10]]); return $this->render('found', ['hits' => $dataProvider->getModels(), 'pagination' => $dataProvider->getPagination(), 'query' => $searchData['query']]); }
public function actionSearch($q = '') { $time_start = microtime(true); //начало измерения /** @var \himiklab\yii2\search\Search $search */ $search = Yii::$app->search; $searchData = $search->find($q); // Search by full index. //$searchData = $search->find($q, ['model' => 'post']); // Search by index provided only by model `page`. $time_end = microtime(true); //конец измерения $dataProvider = new ArrayDataProvider(['allModels' => $searchData['results'], 'pagination' => ['pageSize' => \Yii::$app->getModule('blog')->searchPageSize]]); $time = str_replace('.', ',', substr($time_end - $time_start, 0, 4)); return $this->render('found', ['hits' => $dataProvider->getModels(), 'count' => count($searchData['results']), 'time' => $time, 'pagination' => $dataProvider->getPagination(), 'query' => $searchData['query']]); }
public function all() { $provider = new ArrayDataProvider(['key' => 'id', 'allModels' => $this->allModels, 'pagination' => ['totalCount' => count($this->allModels), 'pageSize' => 50, 'forcePageParam' => true]]); $models = $provider->getModels(); $pager = LinkPager::widget(['pagination' => $provider->getPagination(), 'maxButtonCount' => 10]); $result = ['models' => array_values($models), 'pager' => $pager]; return $result; }