Есть виджет select2 для yii2 от kartik-v c включенной опцией multiple:true, все работает прекрасно кроме одной вещи, при инициализации начальных значений для поля и дальнейшей попытки редактировать эти значения, удалить один тег или добавить один тег в input либо удаляются все теги в input, либо заменяются все теги новым значением.
Код:
<?php
/* init data */
$init = null;
if (array_key_exists($tag->id, $keywordOnTag)) {
$init = implode(',', $keywordOnTag[$tag->id]);
}
echo Editable::widget([
'name' => 'tags_keywords',
'format' => 'button',
'editableButtonOptions' => ['style' => 'color:black;'],
'inputType' => Editable::INPUT_SELECT2,
'value' => $tag->name,
'header' => 'ключевые слова',
'size' => 'md',
'placement' => 'top',
'formOptions' => ['action' => '/ajax/api/tags/link/keywords?id=' . $tag->id],
'options' => [
'name' => 'tags',
'value' => [2],
'attribute' => 'name',
//'data' => ArrayHelper::map($keywords, 'id', 'name'),
'options' => [
'multiple' => true,
'tokenSeparators' => [',', " ", ', '],
],
'pluginOptions' => ['initSelection' => new JsExpression("function (element, callback)
{
var data = [$init];
callback(data);
}"),
'ajax' => ['url' => '/ajax/api/keywords/list', 'dataType' => 'json'],
'language' => [
'errorLoading' => new JsExpression("function () { return 'Загрузка кэйвордов...';}"),
],
]
]
]);
?>