Динамическое добавление полей в форму

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
max645
Сообщения: 15
Зарегистрирован: 2016.01.20, 12:21

Динамическое добавление полей в форму

Сообщение max645 »

Здравствуйте.
Есть 2 таблицы связанные один ко многим. При внесении или изменении записи в одну таблицу, необходимо добавлять неограниченное кол-во записей в другую.
Другими словами, необходимо при нажатии на кнопку добавить в форму 2 инпута, при нажатии на другую удалять их (желательно с валидацией)
Нет ли виджета для подобных задач?
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Динамическое добавление полей в форму

Сообщение andrei.obuhovski »

В гугл "yii2 dynamic form"
max645
Сообщения: 15
Зарегистрирован: 2016.01.20, 12:21

Re: Динамическое добавление полей в форму

Сообщение max645 »

Спасибо, решил проблему с помощью https://github.com/wbraganca/yii2-dynamicform
makeloo86
Сообщения: 55
Зарегистрирован: 2016.09.07, 12:35

Re: Динамическое добавление полей в форму

Сообщение makeloo86 »

https://github.com/unclead/yii2-multiple-input За эту ссылку спасибо! попробовал в своем проекте, шикарное расширение!

Мне нужно было добавлять в форму поля "язык" и "уровень владения языком". Оба в виде выпадающего списка. С помощью этого расширения решил этот вопрос. Теперь в после отправки формы в контроллер приходит примерно такой массив пост

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

[languages] => Array
                (
                    [0] => Array
                        (
                            [language] => 1
                            [level] => 1
                        )

                    [1] => Array
                        (
                            [language] => 2
                            [level] => 3
                        )

                    [2] => Array
                        (
                            [language] => 3
                            [level] => 2
                        )

                )

            [car] => 1
            [country_id] => 1
            [city_id] => 1
            [image] => 
В контроллере при попытке загрузить все это в модель $model->load(Yii::$app->request->post()
Выдает ошибку Setting read-only property: common\models\Guide::languages
Я понимаю что это переводится "попытка установить свойство которое можно только читать".
Но по какой причине выдается эта ошибка не могу понять.
Подскажите пожалуйста в какую сторону копать? Спасибо.

PS: После того как написал этот пост. Сам понял в чем дело. Не прописал это поле в модели. Надо было добавить public $languages;
Ответить