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

[SOLUCIONADO] Enviar una lista de objetos a un formulario

Estas en el tema de Enviar una lista de objetos a un formulario en el foro de Symfony en Foros del Web. Saludos.... Estoy intentando pasar una lista de objetos a un formulario, pero me sale un error. En primer lugar les explico lo que deseo realizar. ...
  #1 (permalink)  
Antiguo 20/06/2014, 22:02
 
Fecha de Ingreso: junio-2014
Ubicación: Riobamba
Mensajes: 24
Antigüedad: 10 años, 5 meses
Puntos: 0
Enviar una lista de objetos a un formulario

Saludos....

Estoy intentando pasar una lista de objetos a un formulario, pero me sale un error. En primer lugar les explico lo que deseo realizar.

Tengo una tabla Requisito
--->id
--->descripcion
--->estado

y una tabla Inscripcion
--->id
--->nombre

que entre las dos forman una tercera cumplerequisito en una relación 1 a N,

--->id
--->requisito_id
--->inscripcion_id
--->estado

Entonces he creado un RequisitoType para poder crear el formulario, en el cual me salga todos los requisitos que tenga en la tabla: Requisito, para posteriormente poder enviar a guardar los datos en la tabla cumplerequisito..

el formtype de requisito es el siguiente

Código PHP:
class RequisitoType extends AbstractType
{
        
/**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    
public function buildForm(FormBuilderInterface $builder, array $options)
    {
        
$builder
            
->add('descripcion')
            ->
add('estado','checkbox')
        ;
    }
    
    
/**
     * @param OptionsResolverInterface $resolver
     */
    
public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        
$resolver->setDefaults(array(
            
'data_class' => 'Acad\administrativoBundle\Entity\Requisito'
        
));
    }

    
/**
     * @return string
     */
    
public function getName()
    {
        return 
'acad_administrativobundle_requisito';
    }

Entonces al formulario estoy enviando un array de requisitos desde el un controlador, pero no se me genera el formulario, porque me sale el siguiente error:

The form's view data is expected to be an instance of class Acad\administrativoBundle\Entity\Requisito, but is a(n) array


Por favor si me puedan dar una idea de que estoy haciendo mal, de antemano les agradezco.
  #2 (permalink)  
Antiguo 22/06/2014, 13:04
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Enviar una lista de objetos a un formulario

Para lo que necesitas usa el campo entity: http://symfony.com/doc/current/refer...es/entity.html uno para cada una de las relaciones que tienes de cumplerequisito a requisito e inscripcion.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 26/06/2014, 18:22
 
Fecha de Ingreso: junio-2014
Ubicación: Riobamba
Mensajes: 24
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Enviar una lista de objetos a un formulario

Gracias por su respuesta... y ya me guarda todos los requisitos.

Ahora por ejemplo necesito editar o actualizar la tabla: CumpleRequisito, porque mediente codigo desde symfony le envio a guardar esta tabla con el estado=false, entonces yo me cree el formtype para esta clase de la siguiente manera

Código PHP:
public function buildForm(FormBuilderInterface $builder, array $options)
    {
        
$builder
                
->add('estado','checkbox')
               ->
add('requisito','entity',array(
                    
'class' => 'AcadadministrativoBundle:Requisito',
                    
'property' => 'descripcion',))

        ;
        
    }
    
    
/**
     * @param OptionsResolverInterface $resolver
     */
    
public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        
$resolver->setDefaults(array(

            
'data_class' => 'Acad\academicoBundle\Entity\CumpleRequisito'
        
);
    } 

el asunto es que cree un funcion que me devuelve todos los registros de la tabla CumpleRequisito en el formulario de la siguiente manera

Código PHP:
$cumplereq $em->getRepository('AcadacademicoBundle:CumpleRequisito')->findTodosRequisitos();

        
$formulario$this->createForm(new CumpleRequisitoType,$cumplereq); 
y en el formulario le tengo asi..
Código PHP:

<form action="{{ path('estudiante_requisito') }}" method="post" {{
        
form_enctype(formulario) }}>
          {{ 
form_errors(formulario) }}
          <
fieldset>
                  {{
form_row(formulario.estado)}}
                  {{
form_row(formulario.requisito)}}
                  
                  
              </
fieldset>   
         {{
form_rest(formulario)}}                   
          <
input class="boton" type="submit" value="Guardar" />
          </
form
Por lo cual deseo me salga en este formulario todos los requisitos con su estado, pero no me sale y me vota el siguiente error:


The form's view data is expected to be an instance of class Acad\academicoBundle\Entity\CumpleRequisito, but is a(n) array.


Alguna idea más de como podria solventar lo que necesito... Gracias
  #4 (permalink)  
Antiguo 26/06/2014, 18:44
 
Fecha de Ingreso: junio-2014
Ubicación: Riobamba
Mensajes: 24
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Enviar una lista de objetos a un formulario

Algo asi quisiera me salga... no se si haya como realizar eso, de esa manera enviaria a actualizar varios registros a la vez
  #5 (permalink)  
Antiguo 27/06/2014, 07:47
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Enviar una lista de objetos a un formulario

Si puedes usar Embedded Forms
Te aconsejo que dediques un buen tiempo a la lectura del manual y del cookbook; el componente Form es muy versátil y puedes hacer lo que necesitas pero requiere que hagas lo que te recomiendo.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #6 (permalink)  
Antiguo 27/06/2014, 15:30
 
Fecha de Ingreso: junio-2014
Ubicación: Riobamba
Mensajes: 24
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Enviar una lista de objetos a un formulario

Gracias.. !!! Algo así he leído, pero no estaba seguro que se necesitaba hacer con ello.

Lo tomaré en cuenta para poder realizar lo que necesito... Gracias..
  #7 (permalink)  
Antiguo 28/06/2014, 17:42
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Enviar una lista de objetos a un formulario

Si tienes alguna duda posterior agrega tus entidades, el controller y el form type que tengas y no falta quien te pueda orientar
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: formulario, lista, objetos
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 14:45.