Bonsoir ,

J'ai deux entity (IAP et Etablissement) dans deux bundles différents, et j'aimerais faire une jointure sans avoir aucune clé étrangère ni dans l'entity IAP ni dans Etablissement. généralement en sql je peux faire ca :

Select * from IAP i , Etablissement e where i.etab = e.id;

Mais en Dql j'arrive pas.

1 réponse


Bonsoir,

Il faut avoir dans ton entité IAP une propriété "etab" qui fasse la relation avec l'entité Etablissement.
Il faudra définir le type de relation (one to one, many to many, many to one)
Normalement, pas besoin de jointure, à part si elle est spécifique (conditions particulières), doctrine chargera l'entité jointe en fonction des propriétés demandées (lazy loading).

Tu devrais pouvoir faire par la suite:

    echo $iap->getEtab()->getNimporteQuellePropriete();

"getEtab()" ou "getEtabs()" retournera soit une collection d'objets (to many) soit l'objet directement (to one).