@AlexAll

Как коректно вставить плагин \kartik\select2\Select2 в плагин unclead\multipleinput\MultipleInput в yii2?

Пытаюсь вставить плагин \kartik\select2\Select2 в unclead\multipleinput\MultipleInput

Вот инструкция от MultipleInput
Вот код вставки
<?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);
        ?>

1) Почему то сохраняет пустые значения

2) После сохранения, не показывает сохраненные поля

Сделал для этого в модели
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();
    }


И вроде работает но это инвалид, так как ПЕРВАЯ проблема так и осталась(сохраняет пустые поля)

И второе я в базе получаю массив из id и в public function init() в модели ищу по ним названия а потом массивом передаю в public $items

А хотелось бы передавать массив из id шников в саму форму виджета чтобы принимал id и искал title сам тут

'initValueText' => empty($model->items) ? '' : Item::findOne($model->items)->title,


Но нечего не выходит так как $model->items содержит массив

Что посоветуете?
  • Вопрос задан
  • 411 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы