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
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
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 }
sachant que je suis sur Doctrine pour le faire j'ai écrit ceci ... (ptet que c'est une connerie)
c'est dans la classe EtablissementTable que j'ai écris ceci
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(); }
je sens que c'est pas très logique comme requête mais je vois pas comme m'y prendre ... merci d'avance![]()
Partager