Pregunta

Estoy intentando realizar una sencilla combinación en dos mesas y estoy teniendo problemas para encontrar la sintaxis derecho de uso -. Sé que me falta algo simple

A partir de la tabla 'usuarios' necesito el id (funciona bien) y desde la mesa 'meta' necesito la apellidos (no funciona)

$q = Doctrine_Query::create()
->from('Users u')
->leftJoin('u.Meta m');

$users = $q->execute();

//attempt 1    
foreach($users as $user){
    $user_array[$user->id] = $user->last_name;
}

//attempt 2   
foreach($users as $user){
    $user_array[$user->id] = $user->m.last_name;
}

También he intentado añadir un explícito     seleccionar (u.id, m.last_name) a la consulta, pero el resultado es siempre el mismo

Uncaught exception 'Doctrine_Record_UnknownPropertyException' with message
'Unknown record property / related component "last_name" on "Users"

Es evidente que la propiedad que estoy tratando de acceso no está en la tabla de usuarios. -La consulta funciona bien, como si yo no solicito el campo APELLIDOS - mi aplicación funciona como se esperaba ..

//proof   
foreach($users as $user){
    $user_array[$user->id] = 'fake_last_name!';
}

Puede cualquier persona proporcionar un ejemplo sencillo de cómo se supone que debo hacer esto (incluso un enlace a una página en la documentación) todos los ejemplos de unirse DQL en la salida doucmentation la consulta de SQL en lugar de la iteración de los resultados. ..

Doctrina Documentación: Join sintaxis

¿Fue útil?

Solución

Me las arreglé para trabajar hacia fuera ...

http: //www.doctrine-project. org / documentación / manual / 1_2 / es / trabajo-con-modelos

foreach($users as $user){
    $user_array[$user->id] = $user->Meta->last_name;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top