HEllo извините, но мой английский не хорош.проблемы с запросом в внедряемой форме
Я разрабатываю приложение в Symfony 2.3.6, где мне нужно сохранить в DB (postgres) значения от пользователя. Проблема возникает, когда моя встроенная форма (pais + region), которая имеет 2 кнопки отправки, нажимает вторую кнопку. Система бросок
Child "salvar_region" does not exist.
Вопрос заключается в том, как я могу определить, если вторая кнопка нажата, если система выбрасывает исключение?
Вот мой контроллер по умолчанию
public function addLocalAction(Request $request)
{
$region = new Region();
$localidad = new Pais();
$localidad->setRegion($region);
$form = $this->createForm(new localidadType(), $localidad);
if($request->isMethod('POST')){
$form->handleRequest($request);
$form->getData();
if ($form->get('salvarPais')-> isClicked()){
$objeto = new Pais();
$objeto->setNombrePais($form->get('nombrePais')->getData());
$em = $this->getDoctrine()->getManager();
$em->persist($objeto);
$em->flush();}
if ($form->get('salvarregion')->isClicked()){
$objeto = new Region();
$objeto->setNombreRegion($form->get('nombreRegion')->getData());
$objeto->setNombreRegion($form->get('numeroRegion')->getData());
$em = $this->getDoctrine()->getManager();
$em->persist($objeto);
$em->flush();}
return $this->redirect($this->generateUrl('localidades'));
}
return $this->render('plataformaPlataformaBundle:Default:localidades.html.twig', array('form'=> $form->createView()));
}
Мой html.twig
<form action="{{ path('localidades')}}" method="post" {{ form_enctype(form) }}>
<h3>Agregar País</h3>
<div class="pais">
{{ form_row(form.nombrePais) }}
{{ form_row(form.salvarPais) }}
</div>
<form action="{{ path('localidades')}}" method="post" {{ form_enctype(form) }}>
<h3>Agregar Region</h3>
<div class="region">
{{ form_start(form) }}
{{ form_errors(form)}}
{{ form_row(form.region.nombreRegion) }}
{{ form_row(form.region.numeroRegion) }}
{{ form_row(form.region.pais) }}
{{ form_row(form.region.salvarregion) }}
{{ form_end(form) }}
</div>
</form>
и мой 2 типа образует
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('nombreRegion', 'text', array('label' => 'Nombre de Región: '));
$builder->add('numeroRegion', 'integer', array('label' => 'Número de Región: '));
$builder->add('pais', 'entity', array('label' => 'País al que pertenece: ',
'class' => 'plataformaPlataformaBundle:Pais',
'property' => 'nombrePais'));
$builder->add('salvarregion', 'submit', array('label' => 'Guardar Región'));
$builder->getForm();
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('nombrePais', 'text');
$builder->add('salvarPais', 'submit', array('label' => 'Guardar País'));
$builder->add('region', new regionType());
$builder->getForm();
}
PD: Большое спасибо, если кто-то может мне помочь PDx2: вот пример URL-запроса: {"region": {"nombreRegion": "ewrew", "numeroRegion": "4", "pais" : «3», «salvarregion»: «»}, «_ token»: «853d5460b076e01fdf4cef4c59c33e836ab64af3»}
ммм. Была ошибка ввода в вопросе ... Это было в моем коде. Вопрос в том, как я могу получить настоящее имя кнопки, потому что я пытался с region.salvarregion, localidad.region.salvarregion, но это не работает. –