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

Symfony2 + Doctrine 2 - Realizar Query

Estas en el tema de Symfony2 + Doctrine 2 - Realizar Query en el foro de Symfony en Foros del Web. Estimados, Tengo una duda, espero puedan ayudarme. El tema es que necesito que realizar una query de la siguiente forma. Código PHP: $qb  =  $this ...
  #1 (permalink)  
Antiguo 15/12/2011, 09:15
 
Fecha de Ingreso: mayo-2008
Mensajes: 44
Antigüedad: 16 años
Puntos: 1
Symfony2 + Doctrine 2 - Realizar Query

Estimados,
Tengo una duda, espero puedan ayudarme.
El tema es que necesito que realizar una query de la siguiente forma.
Código PHP:
$qb $this->createQueryBuilder('pro')
                    ->
select('pro,atv')
                    ->
leftJoin('pro.atv''atv')
                    ->
orderBy('pro.proDescription''ASC');

        
$query $qb->getQuery(); 
Donde pro contiene los siguientes campos proNumericCode, proAlphanumericCode, proDescription, creationDate, proOnDate, proOffDate

y atv esta compuesto por atvDescription y atvId. <-- ATV puede ser que tenga mas de un registro. ejemplo :

Código PHP:


array (
           [
proNumericCode] => 111,
           [
proAlphanumericCode] => ASDF,
           [
proDescription] => PRODUCTO 1,
           [
creationDate] => 11-11-2011,
           [
proOnDate] => 11-11-2011,
           [
proOffDate] => 11-12-2011,
           [
atv] => array (
                                       [
0] => Array(
                                                                [
atvId] = 1,
                                                                [
atvDescription] = Servicio
                                         
),
                                         [
1] => Array(
                                                                [
atvId] = 2,
                                                                [
atvDescription] = Producto
                                         
)
                                       
          ) 


la idea es que solo yo pueda mostrar la siguiente info :
proNumericCode, proDescription y el array atv.

Probe de la siguiente manera y no me resulta.
Código PHP:
$qb $this->createQueryBuilder('pro')
                    ->
select('pro.proNumericCode, pro.proDescription, atv')
                    ->
leftJoin('pro.atv''atv')
                    ->
orderBy('pro.proDescription''ASC');

$query $qb->getQuery(); 
Me arroja el siguiente error
Código PHP:
        [Semantical Errorline 0col -1 near 'SELECT pro.proNumericCode,'ErrorCannot select entity through identification variables without choosing at least one root entity alias. (500 Internal Server Error

Cualquier sugerencia o ayuda es bienvenida...

Gracias.



Saludos ;)

Última edición por sikociado; 15/12/2011 a las 09:23
  #2 (permalink)  
Antiguo 15/12/2011, 10:01
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Symfony2 + Doctrine 2 - Realizar Query

podrías devolver el objeto parcial:

partial pro.{id, proNumericCode, proDescription}, atv
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 15/12/2011, 10:08
 
Fecha de Ingreso: mayo-2008
Mensajes: 44
Antigüedad: 16 años
Puntos: 1
Respuesta: Symfony2 + Doctrine 2 - Realizar Query

Cita:
Iniciado por maycolalvarez Ver Mensaje
podrías devolver el objeto parcial:

partial pro.{id, proNumericCode, proDescription}, atv
Esa es una buena idea... Probare y te comento ;)
Desde ya , te doy las gracias ;)

Última edición por sikociado; 15/12/2011 a las 10:16
  #4 (permalink)  
Antiguo 15/12/2011, 10:20
 
Fecha de Ingreso: mayo-2008
Mensajes: 44
Antigüedad: 16 años
Puntos: 1
Respuesta: Symfony2 + Doctrine 2 - Realizar Query

Cumple cierta parte de lo que busco, pero me da un problema de información de la fecha ya que me la entrega como un array y lo necesito solamente de la manera 12-10-2011.

La información ahora me la entrega de esta forma :
Código PHP:
[0] => Array
                (
                    [
proNumericCode] => 0003
                    
[proDescription] => PRODUCTO 3
                    
[proOnDate] => DateTime Object
                        
(
                            [
date] => 2011-11-06 00:00:00
                            
[timezone_type] => 3
                            
[timezone] => America/Santiago
                        
)                   
                    [
atv] => Array
                        (
                            [
0] => Array
                                (
                                    [
atvId] => 25
                                    
[atvDescription] => Material
                                    
[atvDate] => DateTime Object
                                        
(
                                            [
date] => 2011-12-07 00:00:00
                                            
[timezone_type] => 3
                                            
[timezone] => America/Santiago
                                        
)

                                    [
atvValue1] => 
                                    [
atvValue2] => 
                                    [
atvRange1] => 
                                    [
atvRange2] => 
                                    [
creationDate] => DateTime Object
                                        
(
                                            [
date] => 2011-12-07 15:55:57
                                            
[timezone_type] => 3
                                            
[timezone] => America/Santiago
                                        
)

                                    [
modificationDate] => 
                                )

                            [
1] => Array
                                (
                                    [
atvId] => 22
                                    
[atvDescription] => Servicio
                                    
[atvDate] => DateTime Object
                                        
(
                                            [
date] => 2011-12-07 00:00:00
                                            
[timezone_type] => 3
                                            
[timezone] => America/Santiago
                                        
)

                                    [
atvValue1] => 
                                    [
atvValue2] => 
                                    [
atvRange1] => 
                                    [
atvRange2] => 
                                    [
creationDate] => DateTime Object
                                        
(
                                            [
date] => 2011-12-07 15:55:19
                                            
[timezone_type] => 3
                                            
[timezone] => America/Santiago
                                        
)

                                    [
modificationDate] => 
                                )

                        )

                )

            [
creationDate] => 2011-12-05 16:29:30
        


La idea que el campo proOnDate me lo muestre de esta forma
[proOnDate] => 2011-11-06
  #5 (permalink)  
Antiguo 15/12/2011, 13:52
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Symfony2 + Doctrine 2 - Realizar Query

Doctrine2 devuelve un objeto DateTime para los campos de fecha
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #6 (permalink)  
Antiguo 15/12/2011, 13:58
 
Fecha de Ingreso: mayo-2008
Mensajes: 44
Antigüedad: 16 años
Puntos: 1
Respuesta: Symfony2 + Doctrine 2 - Realizar Query

Cita:
Iniciado por maycolalvarez Ver Mensaje
Doctrine2 devuelve un objeto DateTime para los campos de fecha
Existirá alguna manera de intervenirlo? en el getArrayResult?
:/ Seguire Googleando ... Igual si alguien sabe como hacerlo se agradecería su tiempo y ayuda ;)

Saludos......

Última edición por sikociado; 16/12/2011 a las 06:28

Etiquetas: doctrine, query, select, symfony2
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 11:20.