Ho un problema con Doctrine 2 e un join sinistro in una relazione di maggio che sto cercando di ottenere. Probabilmente è il mio costruttore di Query, ma non riesco a capirlo.Doctrine 2 leftJoin, with, manytomany relationship, errato numero di righe restituite
Ho una tabella unirsi in questo modo:
----------------------------------
| user_id | attraction_id |
----------------------------------
| 4 1 |
| 4 2 |
| 4 3 |
----------------------------------
Per due modelli, l'utente e di attrazione, dove utente è il proprietario del rapporto.
Quando si esegue questa query:
$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();
I miei utenti contano per l'attrazione con id 1 è 1. Grande!
Ora, se io aggiungere un'altra riga alla tabella unirsi in questo modo:
----------------------------------
| user_id | attraction_id |
----------------------------------
| 1 1 |
| 4 1 |
| 4 2 |
| 4 3 |
----------------------------------
... ed eseguire la stessa query, i miei utenti contano per l'attrazione con id pari a 1 è ... ZERO. Cosa?
Mi manca qualcosa?
Grazie, Mark.
È necessario utilizzare i campi per collegarsi a un'altra tabella (l'identificativo personalizzato utilizzato) e i filtri devono trovarsi nella sezione "dove" nella query SQL. – ZhukV