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

Zend Framework y Doctrine, obtengo un solo registro cuando deberia obtener más

Estas en el tema de Zend Framework y Doctrine, obtengo un solo registro cuando deberia obtener más en el foro de Zend en Foros del Web. Hola Amigos, Me esta sucediendo algo que no termino de comprender y quisiera que me ayuden, no estoy encontrando una buena explicación del comportamiento de ...
  #1 (permalink)  
Antiguo 12/03/2012, 14:57
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 2 meses
Puntos: 14
Pregunta Zend Framework y Doctrine, obtengo un solo registro cuando deberia obtener más

Hola Amigos,

Me esta sucediendo algo que no termino de comprender y quisiera que me ayuden, no estoy encontrando una buena explicación del comportamiento de doctrine.

Estoy haciendo una consulta a unas tablas con algunos Joins, y cuando executo la consulta recibo como resultado 1 solo registro.

Sin embargo, si corro la misma query en la consola mysql recibo más registros (obteniendo con con getSqlQuery).

No comprendo bien por que sucede esto.

Podrían explicarme?

Gracias de antemano.

Gerardo.
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #2 (permalink)  
Antiguo 12/03/2012, 15:27
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 2 meses
Puntos: 14
Pregunta Respuesta: Zend Framework y Doctrine, obtengo un solo registro cuando deberia obtener

lo solucione, de todos modos no comprendo bien por que doctrine se comporta de este modo.

La solución fue: seleccionar de todas las tablas al menos un campo, y en una de los campos no poner un alias.

Ejemplo

SELECT
t1.campo_1,
t2.campo_2 dato_2
FROM
tabla_uno AS t1 INNER JOIN
tabla_dos AS t2 ON t1.id = t2.id_tabla_uno

Para mi es ridiculo.

Alguna explicación logica?
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #3 (permalink)  
Antiguo 12/03/2012, 15:33
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Zend Framework y Doctrine, obtengo un solo registro cuando deberia obtener

Te sugiero webseficientes que postes el código, porque sino es jugar a adivinar.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 12/03/2012, 15:53
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 2 meses
Puntos: 14
Respuesta: Zend Framework y Doctrine, obtengo un solo registro cuando deberia obtener

Ok, este es el codigo:

Esto asi no funciona

Código:
$q = Doctrine_Query::create()
                    ->select('
                        
                        f.mm_file_id mm_file_id,
                        f.mm_file_name mm_file_name,
                        d.device_model_name device_model_name
                        ')
                    ->from("Rabas_Model_MmRelContentFile r")
                    ->innerJoin("r.MmFiles f")
                    ->innerJoin("f.MmRelFileDeviceModel fd")
                    ->innerJoin("fd.DeviceModels d")
                    ->where("r.mm_content_id=?", $input->mm_content_id)
                    ->setHydrationMode( Doctrine::HYDRATE_RECORD );
            $list = $q->execute();
y de este modo si

Código:
$q = Doctrine_Query::create()
                    ->select('
                        r.mm_rel_content_file_id, 
                        f.mm_file_id mm_file_id,
                        f.mm_file_name mm_file_name,
                        d.device_model_name device_model_name
                        ')
                    ->from("Rabas_Model_MmRelContentFile r")
                    ->innerJoin("r.MmFiles f")
                    ->innerJoin("f.MmRelFileDeviceModel fd")
                    ->innerJoin("fd.DeviceModels d")
                    ->where("r.mm_content_id=?", $input->mm_content_id)
                    ->setHydrationMode( Doctrine::HYDRATE_RECORD );
            $list = $q->execute();
y no lo entiendo, en el segundo caso estoy agregando r.mm_rel_content_file_id al select.

Alguna idea?
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #5 (permalink)  
Antiguo 12/03/2012, 16:29
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Zend Framework y Doctrine, obtengo un solo registro cuando deberia obtener

Ouch d1..., tienen la doc caída, pero no seria algo tan loco que al menos una propiedad del from tuviera que estar forzosamente en el select, sino para que hacer un from desde un modelo que no te interesa ninguna propiedad ?, has intentado hacer el from sobre MmFiles y el innerjoin con Rabas_Model_MmRelContentFile ?, lastima no tener acceso a la doc, porque si no esta documentado es sin dudas un comportamiento curioso.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 14/03/2012, 07:20
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 2 meses
Puntos: 14
Pregunta Respuesta: Zend Framework y Doctrine, obtengo un solo registro cuando deberia obtener

Se comporta del mismo modo cambiando el from.

Aqui la diferencia Rara, que yo encuentro, es cuando NO dejo ningún campo sin alias.

Si no dejo ningun campo sin alias, me retorna un solo registro.

Alguien sabe por que ocurre esto con Doctrine? si es un bug?
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web

Etiquetas: doctrine, framework, registro
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 07:31.