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

Consulta DQL con valores null

Estas en el tema de Consulta DQL con valores null en el foro de Symfony en Foros del Web. Tengo un proyecto en el cual debo hacer una consulta DQL en la que algunos valores pueden tomar valor null, de momento lo he resuelto ...
  #1 (permalink)  
Antiguo 21/12/2013, 04:06
Avatar de Delek  
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 75
Antigüedad: 19 años, 9 meses
Puntos: 0
Consulta DQL con valores null

Tengo un proyecto en el cual debo hacer una consulta DQL en la que algunos valores pueden tomar valor null, de momento lo he resuelto haciendo varias consultas pero no veo que sea una solución elegante.

Controlador:
Código PHP:
    public function filtrosAction(Request $request)
    {
        
$request $this->container->get('request');
        
$data $request->request->all();
        
        
$color $data['form']['color']; 
        
$tipo $data['form']['tipo'];
        
$expansion $data['form']['expansion'];
        
        
$form $this->formBusqueda($color$tipo$expansion);
        
        
$em $this->getDoctrine()->getManager();
        
        if(
$color == "10" && $tipo == "12")
            
$cartas $em->getRepository('CartasBundle:Cartas')
                           ->
findExpansionCarta($expansion);
        elseif(
$color == "10")
            
$cartas $em->getRepository('CartasBundle:Cartas')
                          ->
findTipoCarta($tipo$expansion);
        elseif(
$tipo == "12")
            
$cartas $em->getRepository('CartasBundle:Cartas')
                          ->
findColorCarta($color$expansion);
        else 
            
$cartas $em->getRepository('CartasBundle:Cartas')
                          ->
findCarta($color$tipo$expansion);
        
        
$expansion $em->getRepository('CartasBundle:Expansion')
                         ->
findExpansion($expansion);        

        return 
$this->render('CartasBundle:Default:portada.html.twig', array(
                
'cartas' => $cartas,
                
'expansion' => $expansion,
                
'form' => $form->createView()
        )); 
Los valores 10 y 12 corresponden a los valores null respectivamente declarados en parameters.yml

Consulta:
Código PHP:
    public function findCarta($color$tipo$expansion)
    {
        
$em $this->getEntityManager();
    
        
$dql 'SELECT c, t, r, e
                FROM CartasBundle:Cartas c
                JOIN c.tipo t JOIN c.color r JOIN c.expansion e
                WHERE t.id = :tipo
                AND r.id = :color
                AND e.id = :expansion
                ORDER BY c.nombre ASC'
;
    
        
$consulta $em->createQuery($dql);
        
$consulta->setParameter('color'$color);
        
$consulta->setParameter('tipo'$tipo);
        
$consulta->setParameter('expansion'$expansion);
    
        return 
$consulta->getResult();
    } 
La idea es que tome los valores y devuelva la consulta, pero si el valor es null obviamente no devuelve ningún objeto, por eso la idea es hacer una consulta en la cual si es una variable es null recoja todos los valores del objeto correspondiente.

Etiquetas: null
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 13:27.