У меня есть выпадающее меню в моей форме, и структура формы зависит от его значения. Мне удалось решить «форм-обновление», с помощью абонента-подписчика /слушателя, где я пытаюсь обновить основную форму в соответствии с значением раскрытия. model , modelCategory , modelCategoryKey , modelParameter .
[*] modelCategory 1-N ModelParameter
ModelCategorory 1-N Model. /> ModelCategoryKey 1-N MODELPARAMETER < /li>
< /ul>
После выброса пользователя выбирает модель из формы (на основе модели). /> Я попытался прикрепить новые сущности модели параметров к основной модели сущности во время события pre_bind (также установить их значения по умолчанию), и, кажется, работает нормально, но когда я добавляю «параметры» с напечатанным элементом «коллекции» в форму, которую я получаю следующую ошибку: < /p>
. Может быть, сохранить их в менеджере объектов? < /P>
< /blockquote>
Очевидно, что мои сущности не могут быть (и не должны быть) сохраняться в это время. < /P>
Все идеи приветствуются! presubmit /prebind: < /p>
$form->add('parameters','collection',array(
'type' => new ModelParameterType(),
));
< /code>
или < /p>
$form->add(
$this->factory->createNamed('parameters','collection',null,
array(
'type' => new ModelParameterType()
))
);
< /code>
, где атрибут 'Factory' является FormFactoryInterface. Сообщение об ошибке такое же. Тогда он работает без ошибки. < /P>
Вот источник метода изменения моей формы: < /p>
public function preSubmit(FormEvent $event) {
$form = $event->getForm();
$id = $event->getData()['modelCategory'];
$entity = $form->getData();
$categoryKeys = $this->em->getRepository('MyBundle:ModelCategoryKey')->findByModelCategory(
$this->em->getReference('MyBundle:modelCategory',$id)
);
foreach ($categoryKeys as $key) {
$param = new ModelParameter();
$param->setModel($entity);
$param->setKey($key);
$entity->addParameter($param);
}
$form->add(
$this->factory->createNamed('parameters','collection',null,
array(
'type' => new ModelParameterType(),
'allow_add' => true,
'cascade_validation' => true
))
);
}
< /code>
кажется, что < /strong>
Я только что прокомментировал $ param-> setmodel ($ entity); Линия, и, кажется, работает нормально. Я буду решать это больше и поделюсь опытом, если он действительно сработает.
Подробнее здесь: https://stackoverflow.com/questions/186 ... orm-update
Symfony2 Embedded Forms + Dynamic Form Update ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1743600691
Anonymous
У меня есть выпадающее меню в моей форме, и структура формы зависит от его значения. Мне удалось решить «форм-обновление», с помощью абонента-подписчика /слушателя, где я пытаюсь обновить основную форму в соответствии с значением раскрытия. [b] model [/b], [b] modelCategory [/b], [b] modelCategoryKey [/b], [b] modelParameter [/b].
[*] modelCategory 1-N ModelParameter
ModelCategorory 1-N Model. /> ModelCategoryKey 1-N MODELPARAMETER < /li>
< /ul>
После выброса пользователя выбирает модель из формы (на основе модели). /> Я попытался прикрепить новые сущности модели параметров к основной модели сущности во время события pre_bind (также установить их значения по умолчанию), и, кажется, работает нормально, но когда я добавляю «параметры» с напечатанным элементом «коллекции» в форму, которую я получаю следующую ошибку: < /p>
. Может быть, сохранить их в менеджере объектов? < /P>
< /blockquote>
Очевидно, что мои сущности не могут быть (и не должны быть) сохраняться в это время. < /P>
Все идеи приветствуются! presubmit /prebind: < /p>
$form->add('parameters','collection',array(
'type' => new ModelParameterType(),
));
< /code>
или < /p>
$form->add(
$this->factory->createNamed('parameters','collection',null,
array(
'type' => new ModelParameterType()
))
);
< /code>
, где атрибут 'Factory' является FormFactoryInterface. Сообщение об ошибке такое же. Тогда он работает без ошибки. < /P>
Вот источник метода изменения моей формы: < /p>
public function preSubmit(FormEvent $event) {
$form = $event->getForm();
$id = $event->getData()['modelCategory'];
$entity = $form->getData();
$categoryKeys = $this->em->getRepository('MyBundle:ModelCategoryKey')->findByModelCategory(
$this->em->getReference('MyBundle:modelCategory',$id)
);
foreach ($categoryKeys as $key) {
$param = new ModelParameter();
$param->setModel($entity);
$param->setKey($key);
$entity->addParameter($param);
}
$form->add(
$this->factory->createNamed('parameters','collection',null,
array(
'type' => new ModelParameterType(),
'allow_add' => true,
'cascade_validation' => true
))
);
}
< /code>
кажется, что < /strong>
Я только что прокомментировал $ param-> setmodel ($ entity); Линия, и, кажется, работает нормально. Я буду решать это больше и поделюсь опытом, если он действительно сработает.
Подробнее здесь: [url]https://stackoverflow.com/questions/18661881/symfony2-embedded-forms-dynamic-form-update[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия