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

Problema con setparameter en un campo entity formulario

Estas en el tema de Problema con setparameter en un campo entity formulario en el foro de Symfony en Foros del Web. Buenas he creado un formulario en el cual tuve que hacer una query especial para que me mostrase solo los articulos pertenecientes a un cliente, ...
  #1 (permalink)  
Antiguo 19/12/2011, 17:20
 
Fecha de Ingreso: marzo-2006
Mensajes: 230
Antigüedad: 18 años, 1 mes
Puntos: 2
Problema con setparameter en un campo entity formulario

Buenas he creado un formulario en el cual tuve que hacer una query especial para que me mostrase solo los articulos pertenecientes a un cliente, y el caso es que despues de buscar mucho(demasiado, me esta costando mucho aprender Symfony2 con la documentacion disponible, yo lo que voy aprendiendo lo subire a un blog o ayudare con las documentaciones lo prometo :)) he logrado hacer lo siguiente para pasarle un parametro:

Código PHP:
$form2 $this->get('form.factory')->create(new AddPromocionForm(),$promocion,array('attr' => array('id' => '1'))); 
Y en el AddPromocionForm.php he puesto lo siguiente:
Código PHP:
$builder->add('SidArticuloPromocion','entity',
        array(
'class' => 'AcmeDemoBundle:ProArticulo'
              
'query_builder' => function ($repository) {
                                     
$qb $repository->createQueryBuilder('AcmeDemoBundle:ProArticulo');
                                     
$qb->add('where''AcmeDemoBundle:ProArticulo.cliente = :cliente');
                                     
$qb->setParameter('cliente',$options['attr']['id']);
                                    return 
$qb;
                              },
'multiple' => true'required' => false,'property' => 'PidArticulo')); 
El caso es que el setparameter me falla me dice que options no es un objeto, y creo que es porque esta dentro de una funcion function($repository) con lo que la variable deja de tener valor, pero no se como arreglarlo...

Tambien lo he hecho de esta forma pero me falla igualmente:
Código PHP:
$qb $em->createQueryBuilder('AcmeDemoBundle:ProArticulo');
        
$qb->add('where''AcmeDemoBundle:ProArticulo.cliente = :cliente');
        
$qb->setParameter('cliente',$pidEmpresa);
        
         
$promocion = new AcmeDemoBundleEntityCliPromociones();
        
$form2 $this->get('form.factory')->create(new AddPromocionForm(),$promocion,array('attr' => array('query_builder' => $qb))); 
Y en el AddPromocionForm.php lo siguiente y me dice que es un indice incorrecto(hago un print_r y si que tiene valores, y si le paso una query me reconoce query builder que es un tipo incorrecto:
Código PHP:
$builder->add('SidArticuloPromocion','entity',
        array(
'class' => 'AcmeDemoBundle:ProArticulo'
              
'query_builder' => $options['attr']['id'],'multiple' => true'required' => true,'property' => 'PidArticulo')); 
  #2 (permalink)  
Antiguo 19/12/2011, 17:22
 
Fecha de Ingreso: marzo-2006
Mensajes: 230
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: Problema con setparameter en un campo entity formulario

Por cierto en la primera de las formas si yo pongo el valor a mano en el setparameter me funciona ok, pero con ese $options['attr']['id'] no(el valor si tiene el valor correcto(lo comprobe)!
  #3 (permalink)  
Antiguo 21/12/2011, 15:40
 
Fecha de Ingreso: marzo-2006
Mensajes: 230
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: Problema con setparameter en un campo entity formulario

Solucionado!!Era por el Closure(funcion sin nombre que se utiliza en PHP(desconocia esto)) que no puede utilizar ningun variable que no le sea pasada mediante USE...

O sea asi:

Código PHP:
Ver original
  1. $builder->add('SidArticuloPromocion','entity',
  2.         array('class' => 'AcmeDemoBundle:ProArticulo',  
  3.               'query_builder' => function ($repository) use ($id) {
  4.                                      $qb = $repository->createQueryBuilder('AcmeDemoBundle:ProArticulo');
  5.                                      $qb->add('where', 'AcmeDemoBundle:ProArticulo.cliente = :cliente');
  6.                                      $qb->setParameter('cliente',$id);
  7.                                     return $qb;
  8.                               },'multiple' => true, 'required' => false,'property' => 'PidArticulo'));

Por si a alguien le sirve!!
  #4 (permalink)  
Antiguo 05/06/2012, 15:19
Avatar de ytapanes  
Fecha de Ingreso: junio-2012
Mensajes: 22
Antigüedad: 11 años, 10 meses
Puntos: 0
Problema con setparameter en un campo entity formulario

Hola, yo tengo actualmente exactamente el mismo problema, lleo días buscando y preguntando y lo más cercano que tengo de una solución es una posible respuesta de su parte, he mirado el código que pone al final y no entiendo bien como llega el $id a $db->setParameter('institucion',$id), o sea quien se lo pasa al formulario y como lo hace.
Le agradecería mucho si pudiera aclararme la duda
Saludos y Gracias
  #5 (permalink)  
Antiguo 06/07/2012, 08:39
 
Fecha de Ingreso: julio-2012
Mensajes: 1
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Problema con setparameter en un campo entity formulario

Hola acabo de solucionar el problema, si aun necesitas la información házmelo saber y te la paso.
  #6 (permalink)  
Antiguo 11/08/2012, 17:35
 
Fecha de Ingreso: abril-2009
Mensajes: 12
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con setparameter en un campo entity formulario

Hola,
Tengo la misma duda que ytapanes, por favor si pudieran aclararlo les agradecería mucho.

Etiquetas: entity, formulario, symfony2, campos
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 01:30.