Cuál es la forma correcta para recuperar información de dos tablas usando ORM doctrina
-
27-09-2019 - |
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. ..
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;
}