Bonjour, je possède un formulaire de recherche permettant de trouver des artisans en fonction d'une catégorie.
Voici mes Entitées:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<?php
class User extends BaseUser
{
 
   ...    
 
    /**
     * @ORM\OneToOne(targetEntity="Btp\UserProBundle\Entity\UserPro", cascade={"remove", "persist"})
     */
    protected $user_pro;
 
   ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?php
class UserPro
{
   ...
 
    /**
     * @ORM\ManyToOne(targetEntity="Btp\UserProBundle\Entity\Categories")
     */
    protected $categorie_1;
 
   ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
class Categories
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
 
   ...
J'ai donc un UserRepository contenant une methode findUserProByCategorie, qui en fonction de la catégorie choisie, retourne la liste des UserPro possédant cette catégorie.

J'aimerais exécuter l’équivalent DQL de cette requette SQL :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
select * from User
inner join UserPro on User.user_pro_id = UserPro.id
inner join Categories on UserPro.categorie_1_id = Categories.id
where Categories.id=XXXX
J'ai l'impression qu'il faut que j'utilise une relation bidirectionnel, mais c'est un peu flou.

Merci