Tengo un problema con Doctrine 2 y me uno a la izquierda en una relación mayomomany que estoy tratando de poner en práctica. Probablemente sea mi generador de consultas, pero parece que no puedo resolverlo.Doctrine 2 leftJoin, with, manytomany relationship, número incorrecto de filas devueltas
que tienen una tabla de unión de este modo:
----------------------------------
| user_id | attraction_id |
----------------------------------
| 4 1 |
| 4 2 |
| 4 3 |
----------------------------------
Durante dos modelos, de usuario y de atracción, donde usuario es el propietario de la relación.
Al realizar esta consulta: cuentan
$attractions = $CI->em->createQueryBuilder()
->select('a', 'u')
->from('\ListLovers\Model\Attraction', 'a')
->leftJoin('a.users', 'u', \Doctrine\ORM\Query\Expr\Join::WITH, 'u.id = 4')
->getQuery()->getResult();
Mis usuarios de la atracción con id de 1 es 1. Gran!
Ahora bien, si puedo añadir otra fila a la tabla de unión de este modo:
----------------------------------
| user_id | attraction_id |
----------------------------------
| 1 1 |
| 4 1 |
| 4 2 |
| 4 3 |
----------------------------------
... y realizar la misma consulta, mis usuarios cuentan para la atracción con id de 1 es ... CERO. ¿Que?
¿Echo de menos algo?
Gracias, Marca.
Debe usar campos para unir a otra tabla (su identificador personalizado de uso), y los filtros deben estar en la sección "donde" en la consulta SQL. – ZhukV