我正在尝试将 jquery-select2(加载远程数据)插件与 Yii2 搜索模型一起使用。截至目前,我的控制器返回从搜索模型创建的 $dataProvider。但是,它显然不是 select2 可以用来创建下拉列表的格式。
我需要对 $dataProvider 或 select2 做什么才能使两者协同工作?
在我看来,有两种选择:
- 从 $dataProvider 中提取“cat_name”并将其放入 select2 可以使用的格式。
- 教 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
});
});