Bonjour,

j'ai 3 classes que je voudrais mettre en relation en many2many:
EtsEtab, EtsAdr et AdrAdresse.

mon fichier yaml:
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
43
44
45
46
47
48
49
50
51
 
AdrAdresse:
  columns:
    adr_id:
      notnull: true
      type: integer(6)
      primary: true
    adr_adresse:
      notnull: true
      type: string(50)
EtsAdr:
  columns:
    adr_id:
      primary: true
      type: integer(6)
    ets_id:
      primary: true
      type: integer(6)
    ets_adr_dt_debut:
      notnull: true
      type: timestamp(7)
    ets_adr_dt_fin: timestamp(7)
  relations:
    Adresse:
      class: AdrAdresse
      local: adr_id
      foreign: adr_id
      foreignAlias: EtsAdrs
      #type: one
    Etab:
      #class: EtsEtab
      local: ets_id
      foreign: ets_id
      foreignAlias: EtsAdrs
 
EtsEtab:
  columns:
    ets_id:
      notnull: true
      type: integer(6)
      primary: true
    ets_nom:
      notnull: true
      type: string(100)
  relations:
    Adresses:
      class: AdrAdresse
      refClass: EtsAdr
      local: ets_id
      foreign: adr_id
      type: many # ai essaye sans cet argument aussi
Certains éléments de mon fichier Yaml ont été supprimés pour plus de clarté.

Je voudrais faire ma relation pour qu'un établissement puisse avoir plusieurs adresses, mais en récupérant aussi les dates qui se trouvent dans EtsAdr (ets_adr_dt_debut et ets_adr_dt_fin).

le but étant au final de récupérer dans certains cas l'adresse ("valide") dont la date du jour se trouve entre dt_début et dt_fin, dt_fin pouvant être null.

Pour se retrouver avec quelque chose du genre le code ci-dessous dans l'action (dans ce cas, pas de requête spécifique)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
$ets = Doctrine::getTable('EtsEtabService')->find($request->getParameter('ets_id'));
            $adrs = $ets->Adresses;
            foreach ($adrs as $k=>$adr) {
            	if ($adr['ets_adr_dt_fin'] == null) {
            		$adrs->remove($k);
            	}
            }
            //mise en template pour affichage
Est ce que cela est possible?

merci de votre aide