Foros del Web » Programando para Internet » PHP » Symfony »

Como puedo hacer esto con Symfony2?

Estas en el tema de Como puedo hacer esto con Symfony2? en el foro de Symfony en Foros del Web. tengo esto : en el Controlador : $form = $this->createFormBuilder($defaultData) ->setAction('wicomyMainFooterBundle:Default:MainFoo ter.html.twig') ->getForm(); foreach ($trabajosTiposN1 as $trabajoTipoN1) { $form->add('divChkN1_' . $trabajoTipoN1->getId(), 'checkbox', array( 'label' => ...
  #1 (permalink)  
Antiguo 16/11/2015, 10:50
 
Fecha de Ingreso: noviembre-2015
Mensajes: 20
Antigüedad: 8 años, 5 meses
Puntos: 1
Como puedo hacer esto con Symfony2?

tengo esto :

en el Controlador :

$form = $this->createFormBuilder($defaultData)
->setAction('wicomyMainFooterBundle:Default:MainFoo ter.html.twig')
->getForm();
foreach ($trabajosTiposN1 as $trabajoTipoN1) {
$form->add('divChkN1_' . $trabajoTipoN1->getId(), 'checkbox', array(
'label' => $trabajoTipoN1->getNombre(),
'required' => false,
));
foreach ($trabajoTipoN1->getTrabajosTiposNivel2() as $trabajoTipoN2) {
$form->add('divChkN2_' . $trabajoTipoN2->getId(), 'checkbox', array(
'label' => $trabajoTipoN2->getNombre(),
'required' => false,
));
foreach ($trabajoTipoN2->getTrabajosTiposNivel3() as $trabajoTipoN3) {
$form->add('divChkN3_' . $trabajoTipoN3->getId(), 'checkbox', array(
'label' => $trabajoTipoN3->getNombre(),
'required' => false,
));
}
}
}

$form->add('send', 'submit');

y en la plantilla twig pongo :

{{ form(form) }}

esto produce una estructura del tipo:
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>

Como hago para que se produzca una estructura de tipo :

<div id="nivel1">
<div id="nivel1_1">
<div id="nivel1_1_1>
</div>
<div id="nivel1_1_2>
</div>
...
</div>
<div id="nivel1_2">
<div id="nivel1_2_1>
</div>
<div id="nivel1_2_2>
</div>
...
</div>
</div>
<div id="nivel2">
<div id="nivel2_1">
<div id="nivel2_1_1>
</div>
<div id="nivel2_1_2>
</div>
...
</div>
<div id="nivel2_2">
<div id="nivel2_2_1>
</div>
<div id="nivel2_2_2>
</div>
...
</div>
</div>
.....

Estoy empezando con esto de symfony2 y todavía estoy bastante verde.


Muchas gracias de mano y saludos.
  #2 (permalink)  
Antiguo 16/11/2015, 13:16
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Como puedo hacer esto con Symfony2?

Vas a requerir conocer bien el componente forms para hacer lo que quieres te sugiero que comiences a leer la documentación oficial o hagas lo que requieres sin usar ese componente.
http://symfony.com/doc/current/book/forms.html
http://symfony.com/doc/current/cookbook/form/index.html
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 17/11/2015, 02:10
 
Fecha de Ingreso: noviembre-2015
Mensajes: 20
Antigüedad: 8 años, 5 meses
Puntos: 1
Respuesta: Como puedo hacer esto con Symfony2?

Si,el manual ya lo he leido pero me parece una burrada tener que andar con formularios customizados,temas,datatransformers (aun no los entiendo muy bien) y demás,para hacer algo bastante basico.
El otro punto que comentas también es un poco arduo ya que si paso de los formularios symfony para esto,las validaciones,la recogida de datos,las comprobaciones de si el formulario es válido,etc,etc tendría que hacerlo por mi cuenta y al final no se si será peor el remedio que la enfermedad.

¿que me recomendais?¿que sera lo mejor?

Como apunte,no me gustan nada los formularios de symfony,si necesitas una cosa standard perfecto,pero cuando te sales un poco del redil lo complican demasiado,no se,es la opinion de un novato,pero otros lenguajes no andan con formbuilders ni nada,pasas un modelo a la vista y lo recoges en el controlador y a funcionar.....no se,lo dicho,quiza sea de novato,pero me estan dando mucha guerra para desarrollar lo que necesito.


Gracias por todo y saludos.
  #4 (permalink)  
Antiguo 17/11/2015, 16:02
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Como puedo hacer esto con Symfony2?

Cita:
Como apunte,no me gustan nada los formularios de symfony,si necesitas una cosa standard perfecto,pero cuando te sales un poco del redil lo complican demasiado,no se,es la opinion de un novato,pero otros lenguajes no andan con formbuilders ni nada,pasas un modelo a la vista y lo recoges en el controlador y a funcionar.....no se,lo dicho,quiza sea de novato,pero me estan dando mucha guerra para desarrollar lo que necesito.
Si no te gusta no lo uses, symfony no te obliga a usar ese componente.
En este momento estoy realizando una aplicación donde no estamos usando el componente form ya que la "vista" se esta realizando enteramente con angular.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 18/11/2015, 03:53
 
Fecha de Ingreso: noviembre-2015
Mensajes: 20
Antigüedad: 8 años, 5 meses
Puntos: 1
Respuesta: Como puedo hacer esto con Symfony2?

Si,eso estoy haciendo,en lugares donde veo que el componente form puede ayudarme lo uso y en otros sitios no.


Gracias por las respuestas y saludos.
  #6 (permalink)  
Antiguo 19/11/2015, 19:56
 
Fecha de Ingreso: enero-2013
Ubicación: Santa Fe, VT
Mensajes: 68
Antigüedad: 11 años, 2 meses
Puntos: 2
Respuesta: Como puedo hacer esto con Symfony2?

sin leer mucho del codigo lo primero mal que tenes es cuando haces el getForm(). Si queres seguir usando el metodo Add para seguir agregando Fields lo tenes que hacer antes de un getForm().
El getForm() usalo para obtener tu formulario ya armado.

algo asi:
Código PHP:
$form $this->createFormBuilder($defaultData);
$form->setAction('wicomyMainFooterBundle:Default:MainFoo ter.html.twig');
foreach (
$trabajosTiposN1 as $trabajoTipoN1) {
$form->add('divChkN1_' $trabajoTipoN1->getId(), 'checkbox', array(
'label' => $trabajoTipoN1->getNombre(),
'required' => false,
));
foreach (
$trabajoTipoN1->getTrabajosTiposNivel2() as $trabajoTipoN2) {
$form->add('divChkN2_' $trabajoTipoN2->getId(), 'checkbox', array(
'label' => $trabajoTipoN2->getNombre(),
'required' => false,
));
foreach (
$trabajoTipoN2->getTrabajosTiposNivel3() as $trabajoTipoN3) {
$form->add('divChkN3_' $trabajoTipoN3->getId(), 'checkbox', array(
'label' => $trabajoTipoN3->getNombre(),
'required' => false,
));
}
}
}

$form->add('send''submit');
$form $form->getForm(); 
No lo probe pero si no mal me acuerdo era así

PD: acordate en el return al pasar el form hacerlo con el $form->createView(). EJ:
Código PHP:
Ver original
  1. return new $this->render('algun.template.html.twig', array( 'form' => $form->createView() ) );

Última edición por molinasergio91; 19/11/2015 a las 20:02
  #7 (permalink)  
Antiguo 11/03/2016, 02:48
 
Fecha de Ingreso: noviembre-2015
Mensajes: 20
Antigüedad: 8 años, 5 meses
Puntos: 1
Respuesta: Como puedo hacer esto con Symfony2?

gracias y perdón por la tardanza,ya me he arreglado,he cambiado el modo de renderizar la pantalla para no tener que crear una estructura como esa,lo he hecho de otra manera y la funcionalidad es la misma.


Saludos.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:22.