yii2-multiple-input
yii2-multiple-input
Добрый день!
В рамках работы над своими проектами возникала необходимость управлением несколькими значениями для одного поля модели.
Например, есть поле в БД которое содержит json. Например, расписание работы чего-либо. Либо же в профиле пользователя надо иметь возможность указывать несколько телефонов или email-ов.
После ряда доработок решил выложить данное расширение в общий доступ т.к. я думаю, что моя задача не уникальная и многие из вас сталкивались с подобной задачей.
Github
Packagist
На данный момент в документации описаны основные случаи использования.
Подробная документация по конфигурации виджета находится в стадии доработки
Приветствуются замечания, предложения и пулл реквесты.
Update
Сделал первый стабильный релиз.
В рамках работы над своими проектами возникала необходимость управлением несколькими значениями для одного поля модели.
Например, есть поле в БД которое содержит json. Например, расписание работы чего-либо. Либо же в профиле пользователя надо иметь возможность указывать несколько телефонов или email-ов.
После ряда доработок решил выложить данное расширение в общий доступ т.к. я думаю, что моя задача не уникальная и многие из вас сталкивались с подобной задачей.
Github
Packagist
На данный момент в документации описаны основные случаи использования.
Подробная документация по конфигурации виджета находится в стадии доработки
Приветствуются замечания, предложения и пулл реквесты.
Update
Сделал первый стабильный релиз.
Re: yii2-multiple-input
Выпущен релиз 1.0.1
Изменения
Изменения
- Добавилась поддержка виджетов в качестве типа колонки.
- Добавились js события
Re: yii2-multiple-input
Выпущена версия 1.0.2 с минорными доработками:
- возможность настраивать шапку ячеек таблицы
- добавлена минифицированная версия js
Если вы используете виджет и у вас есть предложения или вы нашли баги, то с радостью приму PR или issue
- возможность настраивать шапку ячеек таблицы
- добавлена минифицированная версия js
Если вы используете виджет и у вас есть предложения или вы нашли баги, то с радостью приму PR или issue
Re: yii2-multiple-input
Выпущена версия 1.0.4:
- добавлена возможность задавать параметры атрибута на клиенте. Например, удобно когда виджет используется без привязки к модели AR
- исправлен баг с отображением dropDownList и аналогичных полей ввода. Ранее некорректно выводилось сохраненное значение и не работали некоторые виджеты
Re: yii2-multiple-input
Выпущена версия 1.1.0:
Если вы используете виджет и у вас есть предложения или вы нашли баги, то с радостью приму PR или issue
- добавлена поддержка inline сообщений об ошибках валидации
- переименованы js события и добавлены новые
- исправлена логика использования defaultValue
Если вы используете виджет и у вас есть предложения или вы нашли баги, то с радостью приму PR или issue
Re: yii2-multiple-input
Выпущена версия 1.2.0:
Если вы используете виджет и у вас есть предложения или вы нашли баги, то с радостью приму PR или issue
- добавлен TabularInput виджет, который основан на MultipleInput, но больше подходит для управления несколькими моделями, а не значением конкретного поля
- изменена структура кода для дальнейшего развития виджета
- исправлен ряд ошибок связанных с выводом данных
Если вы используете виджет и у вас есть предложения или вы нашли баги, то с радостью приму PR или issue
Re: yii2-multiple-input
Выпущена версия 1.2.2:
Если вы используете виджет и у вас есть предложения или вы нашли баги, то с радостью приму PR или issue
- добавлена поддержка анонимной функции в атрибуте items
- улучшена работа с radio и checkbox
- исправлены недочеты в css
Если вы используете виджет и у вас есть предложения или вы нашли баги, то с радостью приму PR или issue
Re: yii2-multiple-input
Здравствуйте, пожалуйста, подскажите как можно данные из вашего виджета сохранять в формате json в БД mysql и как потом их от туда получать, чтобы в виджете они нормально отображались. Хотелось бы увидеть куски кода и желательно для виджета с несколькими колонками.
Re: yii2-multiple-input
В модели используете поле, например, settings. Работаете с ним как с массивом. Перед сохранением в БД делаете json_encode, после выборки данных из БД в методе afterFind делаете json_decode и дальше работаете с полем как с обычным массивом.
В данном случае это никак не связанно с логикой работы виджета.
В данном случае это никак не связанно с логикой работы виджета.
Re: yii2-multiple-input
Обновление виджета. Текущая версия 1.2.5:
Если вы используете виджет и у вас есть предложения или вы нашли баги, то с радостью приму PR или issue
- Убрана зависимостьт от yii2-bootstrap
- Добавлена поддержка пустого списка
- Улучшены js события.
- Исправлен ряд багов (подробнее про них можно узнать в CHANGELOG)
Если вы используете виджет и у вас есть предложения или вы нашли баги, то с радостью приму PR или issue
-
- Сообщения: 1
- Зарегистрирован: 2016.04.09, 14:43
Re: yii2-multiple-input
Здравствуйте. Подскажите пожалуйста, если я использую ваш виджет в crud, разве после json_decode в методе afterFind значения не должны подставиться при редактировании? Потому что всё, что происходит, это появляются поля в нужном количестве, но они пусты.
Re: yii2-multiple-input
Добавьте возможность добавлять новые кнопки, кроме add и remove
Re: yii2-multiple-input
просто кнопки без какой либо логики? Вы хотите реализовать свою кастомную логику? Т.е. рядом с кнопокй добавить/удалить еще будет кнопка или как? А вообще для таких целей лучше создать issue на гитхабе https://github.com/unclead/yii2-multiple-input/issuesДобавьте возможность добавлять новые кнопки, кроме add и remove
Re: yii2-multiple-input
Выпущен релиз 2.0.0
Изменения
Полный список версий и изменений доступен здесь: https://github.com/unclead/yii2-multiple-input/releases
Изменения
- Опция limit переименована в max
- Изменился namespace с unclead\widgets на yii\multipleinput
- Исправлена ошибка при использовании виджета в связке с отношениями AR
- Добавлен js метод для получения/установки параметров виджета
- Мелкие улучшения и фиксы
Полный список версий и изменений доступен здесь: https://github.com/unclead/yii2-multiple-input/releases
Re: yii2-multiple-input
Здравствуйте!
Unclead спасибо за Ваш виджет! Очень удобная штука!
Использую на проекте для возможности выбора языка и уровня владения языком.
Вопрос: Есть ли возможность загрузить в виджет данные из модели, чтобы при Update пользователю не приходилось вводить уже ранее введенные данные.
В данный момент на странице create виджет выглядит так:
Что нужно прописать чтобы загрузить в него данные из модели? Спасибо!
Unclead спасибо за Ваш виджет! Очень удобная штука!
Использую на проекте для возможности выбора языка и уровня владения языком.
Вопрос: Есть ли возможность загрузить в виджет данные из модели, чтобы при Update пользователю не приходилось вводить уже ранее введенные данные.
В данный момент на странице create виджет выглядит так:
Код: Выделить всё
<?=
$form->field($modelGuideLanguage, 'languages')->widget(MultipleInput::className(), [
'max' => 6,
'min' => 1, // should be at least 2 rows
'allowEmptyList' => false,
'enableGuessTitle' => true,
'addButtonPosition' => MultipleInput::POS_ROW, // show add button in the header
'columns' => [
[
'name' => 'language_id',
'type' => 'dropDownList',
'title' => Yii::t('app','Language you can speak'),
'defaultValue' => false,
'items' => ArrayHelper::map($allLanguages,'id','name'),
'options' => [
'prompt'=>'',
],
],
[
'name' => 'level',
'type' => 'dropDownList',
'title' => Yii::t('app','Your level'),
'defaultValue' => false,
'items' => [
'1'=>Yii::t('app','I can speak simple'),
'2'=>Yii::t('app','I can speak very good'),
'3'=>Yii::t('app','I cant speak at all'),
],
'options' => [
'prompt'=>'',
],
],
],
])
->label(false);
?>
Re: yii2-multiple-input
А что конкретно не получается? В поле languages у вас должен быть массив с данными вида
посмотрите примеры в папке examples
Код: Выделить всё
[
[
'language_id' => 1,
'level' => 1
],
[
'language_id' => 2,
'level' => 2
]
]
Re: yii2-multiple-input
Давно не писал о новых версиях. На днях выпустил версию 2.4.0.
С версии 2.0.0 были добавлены следующие улучшения:
- возможность использовать клиентскую валидацию active form
- исправлена аякс валидация во вложенных полях
- добавлен еще один тип отображения в виде списка
- исправлено несколько мелких багов
Полный список изменений доступен тут https://github.com/unclead/yii2-multiple-input/releases
Если вы используете виджет и у вас есть предложения или вы нашли баги, то с радостью приму PR или issue
С версии 2.0.0 были добавлены следующие улучшения:
- возможность использовать клиентскую валидацию active form
- исправлена аякс валидация во вложенных полях
- добавлен еще один тип отображения в виде списка
- исправлено несколько мелких багов
Полный список изменений доступен тут https://github.com/unclead/yii2-multiple-input/releases
Если вы используете виджет и у вас есть предложения или вы нашли баги, то с радостью приму PR или issue
Re: yii2-multiple-input
интересуют 2 вопроса:
1. реализация виджета на tab, т.е. когда поля модели выводятся на отдельном табе, ну и, соответственно, добавление/удаление таба (item)
2. вложенность. т.е. возможность для item использовать такой же multiple-input
1. реализация виджета на tab, т.е. когда поля модели выводятся на отдельном табе, ну и, соответственно, добавление/удаление таба (item)
2. вложенность. т.е. возможность для item использовать такой же multiple-input
Re: yii2-multiple-input
Вложенность уже давненько реализована (https://github.com/unclead/yii2-multipl ... d#embedded)
А для вывода в виде табов вам надо реализовать свой Renderer, по аналогии с уже имеющимися, и сделать PR
P.S. лучше такое спрашивать на github потому что на форум я захожу редко и вопросы остаются без ответа
А для вывода в виде табов вам надо реализовать свой Renderer, по аналогии с уже имеющимися, и сделать PR
P.S. лучше такое спрашивать на github потому что на форум я захожу редко и вопросы остаются без ответа
Re: yii2-multiple-input
Всем привет.
Есть вопрос, а как правильно обновлять и !сохранять !новые записи?
Пример контроллера из доки больше про обновление существующих записей:
Есть вопрос, а как правильно обновлять и !сохранять !новые записи?
Пример контроллера из доки больше про обновление существующих записей:
Код: Выделить всё
public function run()
{
Yii::setAlias('@unclead-examples', realpath(__DIR__ . '/../'));
$models = $this->getItems();
$request = Yii::$app->getRequest();
if ($request->isPost && $request->post('ajax') !== null) {
$data = Yii::$app->request->post('Item', []);
foreach (array_keys($data) as $index) {
$models[$index] = new Item();
}
Model::loadMultiple($models, Yii::$app->request->post());
Yii::$app->response->format = Response::FORMAT_JSON;
$result = ActiveForm::validateMultiple($models);
return $result;
}
if (Model::loadMultiple($models, Yii::$app->request->post())) {
// your magic
}
return $this->controller->render('@unclead-examples/views/tabular-input.php', ['models' => $models]);
}