Size: a a a

2020 May 05

А

Антон in Yii Framework 2
Привет всем появилась, задача сделать генератор формы (маркетинговый опрос), столкнулся с непонимаем как загружать  полностью динамические(fake) поля в Model как потом проходить валидацию (благо сохранять не надо)

пока такой json собрал:
``
[
 {
     "id" : "title-block-1",
     "type" : "text",
     "context" : "текст форматированный",
     "rules" : {}
 },
 {
     "id" : "radio-block-1",
     "type" : "radio",
     "context" : "Выберите один из вариантов ниже",
     "choose" : [
       {"choose1" : "Вариант 1"},
       {"choose2" : "Вариант 2"},
       {"choose3" : "Вариант 3"}
     ],
     "rules" : {
         "required" : true,
         "type" : "number"
     }
   },
 {
     "id" : "select-block-1",
     "type" : "select",
     "context" : "Выберите варианты ниже",
     "choose" : [
         {"choose1" : "Вариант 1"},
         {"choose2" : "Вариант 2"},
         {"choose3" : "Вариант 3"}
     ],
     "rules" : {
         "required" : true,
         "type" : "number",
         "multiselect" : true
     }
   }
] ``
появились непонятки как это сделать, допусти я сделаю override конструктора и загружу через post туда данные а как работать дальше не понимаю, нашел полуготовое решение через behaviors https://github.com/developeruz/yii-behaviors (SimpleFormBehaviors) но в раздумиях нужно ли мне оно, ктор реализовывал подобное как лучше поступить?
источник

АБ

Александр Бобров... in Yii Framework 2
👋 Всем привет. Есть ли люди имеющие опыт реализации  GridView с поддержкой редактирования прямо в таблице (кликая по полю)?
источник

NO

Nex Otaku in Yii Framework 2
Антон
Привет всем появилась, задача сделать генератор формы (маркетинговый опрос), столкнулся с непонимаем как загружать  полностью динамические(fake) поля в Model как потом проходить валидацию (благо сохранять не надо)

пока такой json собрал:
``
[
 {
     "id" : "title-block-1",
     "type" : "text",
     "context" : "текст форматированный",
     "rules" : {}
 },
 {
     "id" : "radio-block-1",
     "type" : "radio",
     "context" : "Выберите один из вариантов ниже",
     "choose" : [
       {"choose1" : "Вариант 1"},
       {"choose2" : "Вариант 2"},
       {"choose3" : "Вариант 3"}
     ],
     "rules" : {
         "required" : true,
         "type" : "number"
     }
   },
 {
     "id" : "select-block-1",
     "type" : "select",
     "context" : "Выберите варианты ниже",
     "choose" : [
         {"choose1" : "Вариант 1"},
         {"choose2" : "Вариант 2"},
         {"choose3" : "Вариант 3"}
     ],
     "rules" : {
         "required" : true,
         "type" : "number",
         "multiselect" : true
     }
   }
] ``
появились непонятки как это сделать, допусти я сделаю override конструктора и загружу через post туда данные а как работать дальше не понимаю, нашел полуготовое решение через behaviors https://github.com/developeruz/yii-behaviors (SimpleFormBehaviors) но в раздумиях нужно ли мне оно, ктор реализовывал подобное как лучше поступить?
Ну во-первых ты можешь валидаторы запускать без всяких форм, примеры есть в доке.
источник

NO

Nex Otaku in Yii Framework 2
Во-вторых, динамические формы тоже можно создавать, по-моему там специальный класс для этого был
источник

NO

Nex Otaku in Yii Framework 2
Создаёшь объект, в цикле напихиваешь в него поля какие нужно...
источник

А

Антон in Yii Framework 2
Nex Otaku
Ну во-первых ты можешь валидаторы запускать без всяких форм, примеры есть в доке.
ну это да с валидаторами проблемы небольшие, ну все это в комплексе не работает,
Сейчас копаю eav но как по мне это слишком нагруженный компонент для меня
источник

NO

Nex Otaku in Yii Framework 2
Что значит "не работает"?
источник

А

Антон in Yii Framework 2
Nex Otaku
Что значит "не работает"?
Active form, ругается, что не созданы rules и класс не проинициализирован
источник

NO

Nex Otaku in Yii Framework 2
1. Создал объект формы.
2. Напихал нужных полей.
3. Загрузил методом ->load()
4. Вызвал ->validate()
5. Проверил, есть ли ошибки ->gerErrors()
источник

А

Антон in Yii Framework 2
Nex Otaku
1. Создал объект формы.
2. Напихал нужных полей.
3. Загрузил методом ->load()
4. Вызвал ->validate()
5. Проверил, есть ли ошибки ->gerErrors()
++ к этому и стремлюсь, а eav под мою задачу?
источник

S)

Shokha )) in Yii Framework 2
Nex Otaku
1. Создал объект формы.
2. Напихал нужных полей.
3. Загрузил методом ->load()
4. Вызвал ->validate()
5. Проверил, есть ли ошибки ->gerErrors()
Вот вопрос возник) всегда ли надо по правилам создать объект формы?
источник

S)

Shokha )) in Yii Framework 2
Shokha ))
Вот вопрос возник) всегда ли надо по правилам создать объект формы?
По ОПП?
источник

NO

Nex Otaku in Yii Framework 2
Антон
++ к этому и стремлюсь, а eav под мою задачу?
источник

ВС

Владислав Субботин... in Yii Framework 2
Shokha ))
По ОПП?
Это, скорее, не к ООП, а к SOLID
источник

NO

Nex Otaku in Yii Framework 2
Чего EAV, EAV это способ организации структуры данных) Абстракция поверх стандартных таблиц, она вообще к этой задаче ни к селу ни к городу.
источник

S)

Shokha )) in Yii Framework 2
Владислав Субботин
Это, скорее, не к ООП, а к SOLID
Хорошо ну всегда надо да? Хот 1 поля?
источник

NO

Nex Otaku in Yii Framework 2
EAV используется в сложных динамических проектах, когда через админку нужно создавать в конструкторе всякие товары с десятками свойств. Например, в Битриксе, но там на EAV вообще всё построено.
источник

ВС

Владислав Субботин... in Yii Framework 2
Shokha ))
Хорошо ну всегда надо да? Хот 1 поля?
Ну, смотри, модель формы - это концепция Yii2. В Laravel такой концепции нет, к примеру. Следовательно, нет, не всегда. Но это считается хорошим тоном.
источник

ВС

Владислав Субботин... in Yii Framework 2
Вернее, так: соблюдение предложенных концепций считается хорошим тоном
источник

NO

Nex Otaku in Yii Framework 2
Shokha ))
Вот вопрос возник) всегда ли надо по правилам создать объект формы?
Нет.

Вообще вопрос "как правильно сделать" решается написанием теста перед кодом ) Сразу понимаешь, какие объекты, классы, методы тебе потребуются.
источник