Bonsoir communauté,

je développe actuellement un annuaire web (en Symfony en utilisant Doctrine comme ORM) pour des cafés et restos et j'ai une recherche à mettre en place j'ai du mal à écrire la requête DQL qui feras le bouleau je vous explique mon schéma yml de ma base de données

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Etablissement:
  actAs: 
    Timestampable: ~ 
    Sluggable: 
      unique:       true
      fields:       [name]
      canUpdate:    true
  columns:
    name:             { type: string(255), notnull: true }
    quartier_id:      { type: integer, notnull: true }
    budget_moyen:     { type: float, notnull: true}
    is_activated:     { type: boolean, notnull: true, default: 1 }
  relations: 
    Quartier:     { local: quartier_id, foreign: id, foreignAlias: Etablissements } 
    Services:
      class: Service
      refClass: ServiceEtablissement
      local: id_etablissement
      foreign: id_service  
 
Quartier:   
  columns:
    name:            { type: string(255), notnull: true }
 
Service:
  columns:
    name:                     { type: string(255), notnull: true }
    icon:                     { type: string(255), notnull: true }
  relations:
    Etablissements:
      class: Etablissement
      refClass: ServiceEtablissement
      local: id_service
      foreign: id_etablissement    
 
ServiceEtablissement:
  columns:
    id_service:               { type: integer, notnull: true }
    id_etablissement:         { type: integer, notnull: true }
  relations:
    Service:              { local: id_service, foreign: id, foreignAlias: ServiceEtablissements  }
    Etablissement:        { local: id_etablissement, foreign: id, foreignAlias: ServiceEtablissements }
comme vous pouvez le constater un établissement à plusieurs services genre wifi, payement par carte bancaire, cave à vins, diffusion des matchs de foot, livraison à domicile ... donc pour sélectionner un établissement qui se trouve dans tel quartier et qu'il soit équipé du wifi et il diffuse les matchs de foot

sachant que je suis sur Doctrine pour le faire j'ai écrit ceci ... (ptet que c'est une connerie )

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public function getSearchResult($quartier = NULL,$services = NULL)
	{
		$q = $this->createQuery('a')
		->leftJoin('a.ServiceEtablissements s');
 
		if ($quartier) $q->Where('quartier_id = ?',$quartier);
		if ($services)
		        {
				foreach ($services as $k)
				{
					$q->andWhere('s.id_service = ?',$k);
				}
			}
 
		return $q->execute();
	}
c'est dans la classe EtablissementTable que j'ai écris ceci

je sens que c'est pas très logique comme requête mais je vois pas comme m'y prendre ... merci d'avance