Bonjour,

Je suis en train de corriger une application de gestion de commande créée par un autre développeur.

J'ai donc un module command avec des filtres. J'ai modifié la gestion des utilisateurs (sfGuargUser), il faut donc maintenant filtrer les commandes par groupe d'utilisateur.
J'ai bien ajouté mon filtre. Là où je sèche c'est sur la requête de récupération des commandes du groupe.

En SQL ça donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT * FROM Command c LEFT JOIN sf_guard_user_group ug USING (user_id) WHERE ug.group_id=35
Dans mon code synfony, ceci me semblait correct :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$query
      ->leftJoin('sfGuardUserGroup sfGuardUserGroup')
      ->andWhere('sfGuardUserGroup.group_id', $values)
    ;
Or j'ai une erreur :
Column not found: 1054 Unknown column 'sfGuardUserGroup.group_id' in 'where clause'
La requête SQL fonctionne parfaitement dans phpmyadmin, le champ existe donc bien dans la table.

Voici une partie de mon schema.yml qui correspond aux besoins de la requête. :
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
 
Command:
  actAs: [Timestampable]
  columns:
    reference:
      type: string(30)
    ...
    payment_id:
      type: bigint
  indexes:
    step_idx:
      fields: [step]
    shipping_method_idx:
      fields: [shipping_method]
    payment_method_idx:
      fields: [payment_method]
    payment_id_idx:
      fields: [payment_id]
  relations:
    Products:
      class: Product
      refClass: CommandProducts
      local: command_id
      foreign: product_id
      foreignAlias: Commands
    User:
      class: sfGuardUser
      local: user_id
      onDelete: NO ACTION # en cas de suppression de l'utilisateur, afficher "utilisateur supprimé"
 
sfGuardUser:
  actAs: [Timestampable]
  columns:
    first_name: string(255)
    ...
    ville:
      type: string(128)
    phone:
      type: string(12)
  indexes:
    is_active_idx:
      fields: [is_active]
    # index personnalisés
    phone_idx:
      fields: [phone]
    is_optin_mail_idx:
      fields: [is_optin_mail]
    is_optin_sms_idx:
      fields: [is_optin_sms]
    # fin index personnalisés
  relations:
    Groups:
      class: sfGuardGroup
      local: user_id
      foreign: group_id
      refClass: sfGuardUserGroup
      foreignAlias: Users
    Permissions:
      class: sfGuardPermission
      local: user_id
      foreign: permission_id
      refClass: sfGuardUserPermission
      foreignAlias: Users
 
sfGuardUserGroup:
  options:
    symfony:
      form:   false
      filter: false
  actAs: [Timestampable]
  columns:
    user_id:
      type: integer
      primary: true
    group_id:
      type: integer
      primary: true
  relations:
    User:
      class: sfGuardUser
      local: user_id
      onDelete: CASCADE
    Group:
      class: sfGuardGroup
      local: group_id
      onDelete: CASCADE
Est-ce que cela vient des relations ? avez vous besoin d'autres bouts de code pour savoir ce qui cloche ?

Merci d'avance.