Yii2 Проблема Фильтрация в сетке с использованием Typehead

Я пытаюсь объединить фильтрацию в Kartik Gridview с виджетом Typehead.

Я следую инструкциям от Крае статьи, в сочетании с этим вопросом Github Issue.

Это мой код в моем index.php

[
'attribute' => 'type',
'vAlign' => 'middle',
'value' => 'type',
'filterType' => GridView::FILTER_TYPEAHEAD,
'filterWidgetOptions' => [
'pluginOptions' => ['highlight' => true],
'dataset' => [
[
'local' => ArrayHelper::map(MasterProduct::find()->orderBy('master_prod_id')->where(['user_id' => $userId])->asArray()->all(), 'type', 'typr'),
// 'datumTokenizer' => "Bloodhound.tokenizers.obj.whitespace('value')",
'display' => 'value',
// 'prefetch' => $baseUrl . '/samples/countries.json',
'remote' => [
'url' => Url::to(['/master-product/index']) . '?q=%QUERY',
'wildcard' => '%QUERY'
]
]
]
],
'filterInputOptions' => ['placeholder' => 'Select Type..'],
'width' => '210px',
'hAlign' => 'center'
],

И это мой код в controller.php

 public function actionIndex($q = null) {
$model = new MasterProduct();
$searchModel = new MasterProductSearch();
$query = new \yii\db\Query();

$query->select('type')
->from('master_product')
->where('type LIKE "%' . $q . '%"')
->orderBy('type');
$command = $query->createCommand();
$data = $command->queryAll();
$out = [];
foreach ($data as $d) {
$out[] = ['value' => $d['type']];
}
Json::encode($out);
$userId = Yii::$app->user->identity->id;
$searchModel->user_id = $userId;
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->pagination->pageSize = 50;

return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'model' => $model,
'userId' => $userId,
]);

Столбец успешно фильтрует данные, но не выполняет автоматическое заполнение / предложение, как демонстрация.

Пример:
Мои ожидания такие,
введите описание изображения здесь

т.е. пользователь только вводит sauТип показывает все данные, которые содержат sau а затем он использует автоматическую фильтрацию.

Но то, что я получаю, это обратное моему ожиданию.

Как я могу заставить Typehead работать хорошо?

и любой желающий может объяснить, для чего предназначены «datumTokenizer» и «prefetch» ​​в файле index.php?

0

Решение

Можете ли вы иметь тот же идентификатор или класс на странице, попробуйте прокомментировать рендеринг _search файла.

<?php // echo $this->render('_search', ['model' => $searchModel]); ?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]