Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/12/2011, 11:03
sikociado
 
Fecha de Ingreso: mayo-2008
Mensajes: 44
Antigüedad: 16 años, 7 meses
Puntos: 1
Mensaje Symfony2 - Doctrine 2 (Agregar funciones de postgresql a una query en doctrine 2)

Estimados,
Como puedo agregar a una query realizada con un createQueryBuilder o createQuery, una función de postgres ('array_to_string')?

He intentado de las siguientes formas.
Con createQueryBuilder :
Código PHP:
$qb $this->createQueryBuilder('ser');
$expr $qb->expr();


$subQuery 'array_to_string(
         ARRAY(
                        SELECT subAtt.att_description
                        FROM ModulesConfigBundle:Attribute subAtt
                        WHERE subAtt.attLeft < att.attLeft
                        AND subAtt.attRight > att.attRight
         ),
           "/"
 )'
;


$qb->select('pro.proNumericCode, pro.proAlphanumericCode, pro.proDescription, cub.cubId, cub.cubDescription,att.attDescription, ' $expr->some($subQuery))
                ->
join('ser.proNumericCode''pro')
                ->
join('ser.cub','cub')
                ->
join('cub.att','att')
                ->
where('att.attLeft >= :attLeft')
                ->
andWhere('att.attRight <= :attRight')
                ->
setParameter('attLeft'$attLeft)
                ->
setParameter('attRight'$attRight);
$query $qb->getQuery();

//Me tira un Error: Expected known function 'SOME' 

Y con CreateQuery :

Código PHP:

$sql 
'SELECT pro.proNumericCode, pro.proAlphanumericCode, pro.proDescription, cub.cubId, cub.cubDescription,att.attDescription,
            array_to_string(
                ARRAY(
                        SELECT subAtt.att_description
                        FROM ModulesConfigBundle:Attribute subAtt
                        WHERE subAtt.attLeft < att.attLeft
                        AND subAtt.attRight > att.attRight
                    ),
                    "/"
            )
                                     FROM ModulesWarehouseBundle:Series ser
                                     JOIN ser.proNumericCode pro
                                     JOIN ser.cub cub
                                     JOIN cub.att att
                                     WHERE att.attLeft >= ' 
$attLeft '
                                      AND att.attRight <= ' 
$attRight;

$cq $em->createQuery($sql);
$cq->getQuery();

//Me dice Error: Expected known function, got 'array_to_string' 
Espero me puedan ayudar.
Si encuentro la solución la posteo :)


Saludos.