obtener post en el process form

54 views
Skip to first unread message

Mario Nunes

unread,
Sep 14, 2009, 3:50:16 AM9/14/09
to symfo...@googlegroups.com
Buenas,

En la acción de processForm tengo que setear valores del formulario y al recoger la información del post tengo que realizar alguna que otra operación. El asunto está en que al recoger la información: $request->getParameter('nombre'); donde nombre es el nombre del campo del formulario no lo recoge, en cambio si pongo $request->getParameter('nombremodulo[nombrevariable]'); si recoge lo que necesito, no estoy seguro que sea la manera correcta.

A parte de esto, la class form tiene que setear valores para la el metodo save de form.

Por otro lado y pasando de "la programación" al utilizar los widgets de formulario no controlo el html generado, como personalizo el formulario, tengo que aplicarle únicamente estilos para posicionar los elementos del form donde a mi me interesen? La plantilla de form es un echo $form.

Estoy utilizando symfony 1.2.8 con doctrine, después de la toma de contacto con jobeet... :-) soy de los nuevos.

Gracias y un saludo.

KNO

unread,
Sep 14, 2009, 4:51:09 AM9/14/09
to symfo...@googlegroups.com
En el manual de formularios puedes encontrar todo.
De momento te diré que yo haría

$form = $request->getParameter('nombremodulo'); //esto se puede
definir en el form y no es el nombre del módulo sino el del modelo
normalmente
Luego comprueba que el formulario es válido

if ($form->isValid())

Luego trata los campos que necesites dentro de $form y por fin, puedes hacer un

$form->save();

Para que tu formulario no salga con la plantilla por defecto puedes ir
campo a campo:
$form['campo1]->render(); (no te olvides de los render errors ni de
los errores globales).
Toda la información, en el libro de los formuarios (http://librosweb.es)

kNo


El 14 de septiembre de 2009 09:50, Mario Nunes
<ma...@pensandoenred.com> escribió:

Mario Nunes

unread,
Sep 14, 2009, 4:55:56 AM9/14/09
to symfo...@googlegroups.com
Gracias kNo,

Revisaré la documentación del libro de formularios.

Salu2.

Rodrigo Miranda

unread,
Sep 14, 2009, 11:03:33 PM9/14/09
to symfony-es
No es la manera correcta.
El formulario que submites lo gestionaste con el subframework de
formularios?, utilizaste en la configuración del formulario algo así
$this->widgetSchema->setNameFormat('campos[%s]') ? para controlar de
manera más eficiente la asignación de los nombres a los campos del
formulario?

Posteriormente, al submitir, lo recibes así: $form->bind($request-
>getParameter($form->getName()))?


Revísalo y cuéntanos.


Rodrigo Miranda
Developer Open Source.
Seguridad Informática
Ing. Informático.
http://www.poodu.cl

marcos

unread,
Sep 23, 2009, 11:26:42 PM9/23/09
to symfony-es
bueno amigo, si quieres obtener el valor del request has esto en tu
proccessForm.

Aqui de una vez te dejo por si quieres insertar registros en otra
tabla de tu Modelo xD!

protected function processForm(sfWebRequest $request, sfForm $form)
{
$form->bind($request->getParameter($form->getName()));
if ($form->isValid())
{

if ($form->isNew())
{

$conn = Doctrine_Manager::connection();
$conn->beginTransaction();
try
{
$modelo1= $form->save();
$modelo2= new Modelo2();
$modelo2->setNombre($modelo1['nombre']);
$prueba2 -> setIdId($modelo1['id']);

$modelo2->save();
$conn->commit();
}
catch (Exception $e)
{
$conn->rollBack();
throw $e;
}
}

}
$this->redirect('modelo1/edit?id='.$prueba1->getId());
}


Espero te ayude
Reply all
Reply to author
Forward
0 new messages