Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/08/2011, 12h54   #1
Futur Membre du Club
 
nicolas lefebvre
Inscription : mai 2010
Messages : 72
Détails du profil
Informations personnelles :
Nom : nicolas lefebvre

Informations forums :
Inscription : mai 2010
Messages : 72
Points : 18
Points : 18
Par défaut groupe sfDoctrineGuardPlugin diem

slt je souhaite laissez ou utilisateur du backend la possibilité d'attribuer un groupe a un prix sous diem 5.1
voici mon schéma:

Code :
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
DmUser:
   columns:
      code_client: { type: integer(5), notnull: true }
      adresse: { type: string(255), notnull: true }
      codepostal: { type: string(255), notnull: true }
      ville: { type: string(255), notnull: true }
 
Produits:
    actAs:  
       DmSortable:  
       I18n:  
          fields:         [ ref,name,stocks,indices, contents, is_active ]  
    actAs:  
        Timestampable:  
        DmVersionable:  
    columns:
        tva_id: { type: integer, notnull: true }
        tarifs_id: { type: integer, notnull: true }
        ref: { type: string(155), notnull: true }
        name: { type: string(100), notnull: true }
        contents: { type: clob, extra: markdown } 
        author:           { type: integer, notnull: true } 
        is_active:        { type: boolean, notnull: true, default: false } 
        image:  { type: integer } 
        stocks: { type: boolean, notnull: true, default: 1 }
 
    relations:  
      Image:  
        class:          DmMedia  
        local:          image  
        foreignAlias: Produits     
      Author:  
        class: DmUser  
        local: author  
        foreignAlias:   Produits  
      Tva:  { onDelete: CASCADE, local: tva_id, foreign: id, foreignAlias: Produits }
      Tarifs:  { onDelete: CASCADE, local: tarifs_id, foreign: id, foreignAlias: Produits }
 
Tarifs:
      columns:
        dm_group_id: { type: integer, primary: true }
        Prix: { type: string(100), notnull: true }
      relations:
        Group:
          class: DmGroup
          local: dm_group_id
          onDelete: CASCADE
 
 
Tarifsdegresif:
      columns:
          maxqte:  { type: string(100), notnull: true }
          pourcentage: { type: string(100), notnull: true }
          produits_id:  { type: integer, primary: true }
      relations:
          Produits:  { onDelete: CASCADE, local: produits_id, foreign: id, foreignAlias: Tarifsdegresif }
 
Tva:
      actAs:
        Timestampable:  
        DmVersionable:  
      columns:
 
          indices: { type: string(155), notnull: true }
a mon avis j'ai un pb au niveaux de la relation avec DmGroup.
si qqun peu m'aider merci d'avance
nlefebvre1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 14h42   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Peut-être que mettre le schéma de dmGroup amènerait un début de réponse...
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 18h44   #3
Futur Membre du Club
 
nicolas lefebvre
Inscription : mai 2010
Messages : 72
Détails du profil
Informations personnelles :
Nom : nicolas lefebvre

Informations forums :
Inscription : mai 2010
Messages : 72
Points : 18
Points : 18
pas de pb
Code :
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
DmUser:
  actAs: [Timestampable]
  columns:
    username:
      type: string(255)
      notnull: true
      unique: true
    email:
      type: string(255)
      notnull: true
      unique: true
    algorithm:
      type: string(128)
      default: sha1
      notnull: true
    salt: string(128)
    password: string(128)
    is_active:
      type: boolean
      default: true
    is_super_admin:
      type: boolean
      default: false
    last_login:
      type: timestamp
    forgot_password_code:
      type: string(12)
      unique: true
  indexes:
    is_active_idx:
      fields: [is_active]
  relations:
    Groups:
      class: DmGroup
      local: dm_user_id
      foreign: dm_group_id
      refClass: DmUserGroup
      foreignAlias: Users
    Permissions:
      class: DmPermission
      local: dm_user_id
      foreign: dm_permission_id
      refClass: DmUserPermission
      foreignAlias: Users
 
DmGroup:
  actAs: [Timestampable]
  columns:
    name:
      type: string(255)
      unique: true
    description: string(1000)
  relations:
    Users:
      class: DmUser
      refClass: DmUserGroup
      local: dm_group_id
      foreign: dm_user_id
      foreignAlias: Groups
    Permissions:
      class: DmPermission
      local: dm_group_id
      foreign: dm_permission_id
      refClass: DmGroupPermission
      foreignAlias: Groups
 
DmPermission:
  actAs: [Timestampable]
  columns:
    name:
      type: string(255)
      unique: true
    description: string(5000)
 
DmGroupPermission:
  options:
    symfony:
      form:   false
      filter: false
  columns:
    dm_group_id:
      type: integer
      primary: true
    dm_permission_id:
      type: integer
      primary: true
  relations:
    Group:
      class: DmGroup
      local: dm_group_id
      onDelete: CASCADE
    Permission:
      class: DmPermission
      local: dm_permission_id
      onDelete: CASCADE
 
DmUserPermission:
  options:
    symfony:
      form:   false
      filter: false
  columns:
    dm_user_id:
      type: integer
      primary: true
    dm_permission_id:
      type: integer
      primary: true
  relations:
    User:
      class: DmUser
      local: dm_user_id
      onDelete: CASCADE
    Permission:
      class: DmPermission
      local: dm_permission_id
      onDelete: CASCADE
 
DmUserGroup:
  options:
    symfony:
      form:   false
      filter: false
  columns:
    dm_user_id:
      type: integer
      primary: true
    dm_group_id:
      type: integer
      primary: true
  relations:
    User:
      class: DmUser
      local: dm_user_id
      onDelete: CASCADE
    Group:
      class: DmGroup
      local: dm_group_id
      onDelete: CASCADE
 
DmRememberKey:
  actAs:
    Timestampable:
      updated:
        disabled: true
  options:
    symfony:
      form:   false
      filter: false
  columns:
    dm_user_id:
      type: integer
    remember_key: string(32)
    ip_address:
      type: string(50)
      primary: true
  relations:
    User:
      class: DmUser
      local: dm_user_id
      foreignAlias: RememberKeys
      foreignType: one
      onDelete: CASCADE
nlefebvre1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 07h56   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
Tarif: #Entité toujours au singulier
    columns:
      # Clef id auto-générée 
      dm_group_id: # Ne peut être la clef
        type: integer
      Prix: 
        type: string(100)
        notnull: true
    relations:
      Group:
        class: DmGroup
        local: dm_group_id
        foreign: dm_group_id # Suis pas sur, cela pourrait être id aussi
        foreignAlias: Tarifs
        onDelete: CASCADE
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 21h58   #5
Futur Membre du Club
 
nicolas lefebvre
Inscription : mai 2010
Messages : 72
Détails du profil
Informations personnelles :
Nom : nicolas lefebvre

Informations forums :
Inscription : mai 2010
Messages : 72
Points : 18
Points : 18
il me fait une erreur a la migration

Citation:
The following errors occurred:

- SQLSTATE[HY000]: General error: 1005 Can't create table 'test4.#sql-85c_4e' (errno: 150). Failing Query: "ALTER TABLE tarif ADD CONSTRAINT tarif_dm_group_id_dm_group_dm_group_id FOREIGN KEY (dm_group_id) REFERENCES dm_group(dm_group_id) ON DELETE CASCADE"
a j'ai modifié sur tes conseils Produits => Produit et Tarifs => Tarif
foreignAlias: Tarifs => Tarif
nlefebvre1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 10h04   #6
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Si tu vires le ondelete, il fait quoi ?

Le nom de l'entité doit être au singulier (donc tarif). C'est pour permettre d'avoir une relation au pluriel. Dans le cas du foreignAlias, il va retourner la liste des tarifs en relation, soit un doctrine_collection.

Il est donc intéressant de laisser la relation au pluriel, indiquant ainsi qu'elle retourne une collection et non pas un record.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 13h10   #7
Futur Membre du Club
 
nicolas lefebvre
Inscription : mai 2010
Messages : 72
Détails du profil
Informations personnelles :
Nom : nicolas lefebvre

Informations forums :
Inscription : mai 2010
Messages : 72
Points : 18
Points : 18
toujours une erreur


Citation:
The following errors occurred:

- SQLSTATE[HY000]: General error: 1005 Can't create table 'test4.#sql-646_b8' (errno: 150). Failing Query: "ALTER TABLE tarif ADD CONSTRAINT tarif_dm_group_id_dm_group_dm_group_id FOREIGN KEY (dm_group_id) REFERENCES dm_group(dm_group_id)"
nlefebvre1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 15h18   #8
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
A priori l'erreur vient de la création de la relation.

Essaye sans la table tarif, puis sans la relation, puis vérifie les nom des deux champs (local et foreign).

Après avoir supprimé la table tarif du schéma, nettoies le modèle avec le CLI
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2011, 18h03   #9
Futur Membre du Club
 
nicolas lefebvre
Inscription : mai 2010
Messages : 72
Détails du profil
Informations personnelles :
Nom : nicolas lefebvre

Informations forums :
Inscription : mai 2010
Messages : 72
Points : 18
Points : 18
bon sa marche avec la table comme çà
Code :
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
DmUser:
   columns:
      code_client: { type: integer(5), notnull: true }
      adresse: { type: string(255), notnull: true }
      codepostal: { type: string(255), notnull: true }
      ville: { type: string(255), notnull: true }
 
Produit:
    actAs:  
       DmSortable:  
       I18n:  
          fields:         [ ref,name,stocks,indices, contents, is_active ]  
    actAs:  
        Timestampable:  
        DmVersionable:  
    columns:
        tva_id: { type: integer, notnull: true }
        tarif_id: { type: integer, notnull: true }
        ref: { type: string(155), notnull: true }
        name: { type: string(100), notnull: true }
        contents: { type: clob, extra: markdown } 
        author:           { type: integer, notnull: true } 
        is_active:        { type: boolean, notnull: true, default: false } 
        image:  { type: integer } 
        stocks: { type: boolean, notnull: true, default: 1 }
    relations:  
      Image:  
        class:          DmMedia  
        local:          image  
        foreignAlias: Produits     
      Author:  
        class: DmUser  
        local: author  
        foreignAlias:   Produit  
      Tva:  { onDelete: CASCADE, local: tva_id, foreign: id, foreignAlias: Produits }
      Tarif:  { onDelete: CASCADE, local: tarif_id, foreign: id, foreignAlias: Produits }
 
Tarif:
    columns:
      prix:  { type: string(100), notnull: true } 
      dm_group_id: { type: integer, notnull: true }          
    relations:
      Groups:
        class: DmGroup
        local: dm_user_id
        foreign: dm_group_id
        refClass: DmUserGroup
        foreignAlias: Tarifs
 
 
Tarifsdegresif:
      columns:
          maxqte:  { type: string(100), notnull: true }
          pourcentage: { type: string(100), notnull: true }
          produit_id:  { type: integer, primary: true }
      relations:
          Produit:  { onDelete: CASCADE, local: produit_id, foreign: id, foreignAlias: Tarifsdegresifs }
 
Tva:
      actAs:
        Timestampable:  
        DmVersionable:  
      columns:
        indices: { type: string(155), notnull: true }
mais voilà ce que j'aimerai c'est que dans la page produit il me propose de mettre le prix et a se prix de lui attribuer un group.

alors j'ai essayé dans la class ProduitForm
Code :
 $this->embedRelation('Tarif');
mais rien ne se pas y peu etre qq chose a faire dans le fichier generator mais la je rame
nlefebvre1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 09h03   #10
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Tu as, de part ta structure une relation 1-n entre produit et tarif.

Donc il doit te générer une liste déroulante.

Que désires-tu avoir en réalité ?
Je ne vois absolument pas ce qu'un embed vient faire ici.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2011, 16h20   #11
Futur Membre du Club
 
nicolas lefebvre
Inscription : mai 2010
Messages : 72
Détails du profil
Informations personnelles :
Nom : nicolas lefebvre

Informations forums :
Inscription : mai 2010
Messages : 72
Points : 18
Points : 18
voila j'aimerai avoir dans produits un input tarifs.
A se input tarifs j'aimerai avoir la la possibilité de lui attribuer un group toujours dans produits sous forme de checkbox.
nlefebvre1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h26.


 
 
 
 
Partenaires

Hébergement Web