Я пытаюсь использовать плагин jquery-select2 (загрузка удаленных данных) с помощью модели поиска Yii2. На данный момент мой контроллер возвращает $ dataProvider, созданный из модели поиска. Однако это явно не в формате, который select2 может использовать для создания раскрывающегося списка.Как использовать ActiveDataProvider с select2?
Что мне нужно сделать для $ dataProvider или select2, чтобы заставить их работать вместе?
Как я вижу это, есть 2 варианта:
- извлечь «cat_name» от $ DataProvider и поставить его в формате, который можно использовать Выбор2.
- Учить select2 как читать $ dataProvider.
Я не знаю, как бы я сделал 2, и я подозреваю, что это сделало бы «пометка» функциональность трудно реализовать, таким образом, я склоняюсь к 1.
Любая помощь будет оценена.
Вот мой код:
Контроллер боковой
public function actionCatSearch($q)
{
if (Yii::$app->request->isAjax) {
$searchModel = new CatSearch();
$dataProvider = $searchModel->search(['catSearch' => ['cat_name' => $q]]);
return $dataProvider->models;
}
}
JS сторона
$(document).ready(function(){
$('.js-select').select2({
tags: true,
ajax: {
url: 'cat-search',
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term
};
},
processResults: function (data, page) {
return {
results: data
};
},
cache: true
},
minimumInputLength: 1
});
});
Вы должны отметить это как ответ тогда. – topher