yii2-multiple-input

Выкладываем свои наработки
Аватара пользователя
ElisDN
Сообщения: 5355
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: yii2-multiple-input

Сообщение ElisDN » 2018.01.24, 22:32

Код

Код: Выделить всё

foreach (array_keys($data) as $index) {
     $models[$index] = new Item();
}
как раз и создаёт новые. Главное в форме на JavaScript добавление строк с полями ввода реализовать.

novoselov
Сообщения: 36
Зарегистрирован: 2015.04.18, 15:11

Re: yii2-multiple-input

Сообщение novoselov » 2018.01.24, 23:33

Дмитрий, да, это понимаю.

Но этот код создаст новые записи, потом в них загружаем Moodel::loadMultiple($models, Yii::$app->request->post()), но как быть с записями которые нужно обновить?

Аватара пользователя
webplus
Сообщения: 252
Зарегистрирован: 2012.02.24, 22:05
Контактная информация:

Re: yii2-multiple-input

Сообщение webplus » 2018.04.11, 17:04

Здравствуйте!
В этом примере: Изображение идут input-ы в ряд, а в строку можно выводить их.
Например мне надо: первая строка - инпут заглавия, вторая строка два инпута даты от и до и третья строка инпут описание. Такое возможно сделать?

Loveorigami
Сообщения: 971
Зарегистрирован: 2014.08.27, 21:54

Re: yii2-multiple-input

Сообщение Loveorigami » 2018.04.11, 17:49

Посмотреть исходник, не?
https://github.com/unclead/yii2-multipl ... t.php#L118

Далее делаете, как Вам нужно, по аналогии

https://github.com/unclead/yii2-multipl ... nderer.php или
https://github.com/unclead/yii2-multipl ... nderer.php

alexa777
Сообщения: 280
Зарегистрирован: 2016.03.01, 17:38

Re: yii2-multiple-input

Сообщение alexa777 » 2019.02.27, 14:16

unclead писал(а):
2017.03.18, 12:58
Пытаюсь вставить плагин \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);
        ?>
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();
    }

И вроде работает но это инвалид, так как 1 проблема так и осталась(сохраняет пустые поля)

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

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

Код: Выделить всё

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

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

Что посоветуете?

Ответить