Php 如何在yii-kartik小部件select2和ajax上使用多重选择

Php 如何在yii-kartik小部件select2和ajax上使用多重选择,php,ajax,yii2,jquery-select2,kartik-v,Php,Ajax,Yii2,Jquery Select2,Kartik V,我正在尝试将Kartik Select2小部件用于我的Yii2项目。 我将使用Ajax加载和everithing works查找,但是如果我设置了multiple选项,则会出现此错误 PHP警告–yii\base\ErrorException数组_combine():两个参数 应具有相同数量的元素 此错误出现在此行的Select2.php中 $this->data = $multiple ? array_combine((array)$key, (array)$val) : [$key

我正在尝试将Kartik Select2小部件用于我的Yii2项目。 我将使用Ajax加载和everithing works查找,但是如果我设置了multiple选项,则会出现此错误

PHP警告–yii\base\ErrorException数组_combine():两个参数 应具有相同数量的元素

此错误出现在此行的Select2.php

 $this->data = $multiple ? array_combine((array)$key, (array)$val) : [$key => $val];
我认为这是因为缺少数据属性,但是如果我添加数据属性,ajax就不能正常工作

我的看法是:

$form->field($model, 'lista_art')->widget(Select2::classname(), [
    'initValueText' => "", // set the initial display text
    //'data' => '',
    'options' => ['placeholder' => 'Select a color ...',
                  //'multiple' =>true, // error here
                 ],
    'pluginOptions' => [
        'tags' => true,
        'tokenSeparators' => [',', ' '],
        'allowClear' => true,
        'minimumInputLength' => 3,
        'language' => [
            'errorLoading' => new JsExpression("function () { return 'Waiting for results...'; }"),
        ],
        'ajax' => [
            'url' => \yii\helpers\Url::to(['lista-articoli']),
            'dataType' => 'json',
            'data' => new JsExpression('function(params) { return {q:params.term}; }')
        ],
        'escapeMarkup' => new JsExpression('function (markup) { console.log(markup);return markup; }'),
        'templateResult' => new JsExpression('function(lista_art) { return lista_art.art_modello; }'),
        'templateSelection' => new JsExpression('function (lista_art) { return lista_art.art_modello; }'),
    ],
]);
还尝试在“pluginOptions”数组中插入多个选项,但不起作用。 可以在Ajax加载中使用多个选项吗


另外,我已经检查了我的开发者工具栏,结果是正确的,并且给出了我期望的结果。

您忘记设置数据属性了

示例如何将kartik select 2与模型和活动窗体一起使用

$model->keywords = [1, 2];  // NOTE THIS IS AN ARRAY of keys
$form->field($model, 'keywords')->widget(Select2::className(), [
    'pluginOptions' => [
        'tags' => true,
       'multiple' =>true, 
    ],
     'data' => [1=>'keyword1', 2=>'keyword2', 3=>'keyword3'],  
])
更新 尝试将数据设置为空数组,如
'data'=>[]

您好,请尝试将数据设置为空数组('data'=>[])更多信息,请在下面的m答案中单击“下一票”按钮!我将像字符串一样设置数据,而不是像数组一样设置数据,我犯了一个愚蠢的错误!!非常感谢你。