Код: Выделить всё
foreach (array_keys($data) as $index) {
$models[$index] = new Item();
}
Код: Выделить всё
foreach (array_keys($data) as $index) {
$models[$index] = new Item();
}
Пытаюсь вставить плагин \kartik\select2\Select2
Код: Выделить всё
<?php
echo $form->field($model, 'items')->widget(MultipleInput::className(), [
'columns' => [
[
'name' => 'slide',
'type' => \kartik\select2\Select2::className(),
'options' => [
'options' => ['placeholder' => 'Поиск ...'],
// 'initValueText' => empty($model->items) ? '' : Item::findOne($model->items)->title,
'pluginOptions' => [
'allowClear' => true,
'minimumInputLength' => 3,
'language' => 'ru',
'ajax' => [
'url' => \yii\helpers\Url::to(['item-list']),
'dataType' => 'json',
'data' => new JsExpression('function(params) { return {q:params.term}; }')
],
'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
'templateResult' => new JsExpression('function(item_id) { return item_id.text; }'),
'templateSelection' => new JsExpression('function (item_id) { return item_id.text; }'),
],
],
],
]
])->label(false);
?>
Код: Выделить всё
public $items;
public function init()
{
parent::init();
$title = [];
foreach ($this->itemall as $item){
$title[]['slide'] = empty($item['item_id']) ? '' : Item::findOne($item['item_id'])->title;
}
$this->items = $title;
}
public function getItemAll()
{
return self::find()->orderBy(['id' => SORT_ASC])->asArray()->all();
}
Код: Выделить всё
'initValueText' => empty($model->items) ? '' : Item::findOne($model->items)->title,
В модели при загрузке данных в методе load можете фильтровать загружаемые данные и name не будет попадать туда. В виджете вроде нельзя отключать передачу пустых значений, если не заполнена строчка. Это нужно чтобы провалидировать все значения формы на стороне сервера.