IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

groupe sfDoctrineGuardPlugin diem


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 131
    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 : 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
    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

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Peut-être que mettre le schéma de dmGroup amènerait un début de réponse...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 131
    Par défaut
    pas de pb
    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
    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

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    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
     
    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

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 131
    Par défaut
    il me fait une erreur a la migration

    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

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    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.

Discussions similaires

  1. [CR8] Groupes nommés par ordre spécifié
    Par PschittN dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/05/2004, 23h46
  2. Selection de Groupes ki ne sont pas sous groupes...
    Par superdada dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/07/2003, 14h42
  3. [RaveReport] - Bloquer groupe sur une page
    Par muaddib dans le forum Rave
    Réponses: 3
    Dernier message: 25/02/2003, 16h21
  4. gestion des groupes
    Par muaddib dans le forum QuickReport
    Réponses: 3
    Dernier message: 31/12/2002, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo