Symfony2 Embedded Forms + Dynamic Form UpdatePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Symfony2 Embedded Forms + Dynamic Form Update

Сообщение Anonymous »

У меня есть выпадающее меню в моей форме, и структура формы зависит от его значения. Мне удалось решить «форм-обновление», с помощью абонента-подписчика /слушателя, где я пытаюсь обновить основную форму в соответствии с значением раскрытия. 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»