2010-06-04 12 views
7

Tengo 2 tablas en una base de datos MySQL, im usando doctrina 1.2 y Symfony 1.4.4DQL consulta falla

Installedbase y piezas de

Installedbase: 
ib_id 
app_id 
location 

y

Spare: 
spare_id 
app_id 
amount 

Ahora i desea unirse a las tablas para mostrar cuántas de las aplicaciones están en el repuesto.

p. Ej.

$q = self::createQuery("l") 
->select('i.*, s.*') 
->from('InstalledBase i, Spare s') 
->execute(); 

return $q; 

Doctrina sabe que hay una relación entre las tablas en el campo APP_ID pero me sale el error

500 | Internal Server Error | Doctrine_Hydrator_Exception 
"Spare" with an alias of "s" in your query does not reference the parent component it is related to. 

yaml: http://pastey.net/137237 No puedo imaginar éste, ¿alguien sabe lo que la doctrina es ¿quejándose acerca de?

+0

Por favor, edite su pregunta y muéstrenos las secciones relevantes de su esquema, incluidas las relaciones. – richsage

+0

hecho http://pastey.net/137237 – iggnition

Respuesta

4
->from('InstalledBase i, i.Spare s') 

... "Spare" con un alias de "s" en la consulta no hace referencia al componente primario relacionado.

Agregue algunos criterios adicionales a esta consulta para no devolver todo en ambas tablas.

0

Por lo que parece, no le ha dicho a Doctrine que esas 2 tablas están relacionadas.

+0

En mi schema.yml he agregado una relación de uno a muchos en los dos campos de app_id, por lo que debería saber. – iggnition

Cuestiones relacionadas