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

PHP & Base de données Discussion :

[Doctrine] classe d'association et récursivité


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Par défaut [Doctrine] classe d'association et récursivité
    bonjour à tous,
    est-ce que quelqu'un sait comment créer une classe d'association dans le fichier schema.yml ?

    et comment créer un attribut récursif ?
    exemple : http://www.developpez.net/forums/sho...d.php?t=300013
    merci d'avance

  2. #2
    Membre chevronné
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Billets dans le blog
    7
    Par défaut ça depant comment vous l'implemantez
    Salut ,
    ça depant comment vous l'implemantez dans la base
    Pour le premiers cas : une table femme ,table home et mariage ou mariage , user et type_user ?

  3. #3
    Membre confirmé Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Par défaut
    je crois avoir fait cela mais il y a bug quand je génère le crud des tables

    dans la fonction setup() de baseNorme.class.php j'ai :
    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
       public function setUp()
      {
        parent::setUp();
     
        /*$this->hasMany('Contrat as Contrats', array('refClass' => 'ContratNormeSurveilles',
                                                    'local' => 'norme_id',
                                                    'foreign' => 'contrat_id'));*/ ----> erreur générée ici 
     
        $this->hasMany('Surveillance as Surveillances', array('refClass' => 'ContratNormeSurveilles',
                                                              'local' => 'norme_id',
                                                              'foreign' => 'surveillance_id'));
     
        $this->hasMany('ContratNormeSurveilles', array('local' => 'id',
                                                       'foreign' => 'norme_id'));
      }
    ici le vrai modèle de classe est le suivant :

    et un bout du schema.yml :
    Code X : 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
    Contrat:
      tableName:
        contrats
      columns:
        id:
          type: integer(4)
          primary: true
          autoincrement: true
        numero:            
          type: integer(4) 
      attributes:
        export: all
        validate: true
    
    Norme:
      tableName:
        normes
      columns:
        id:
          type: integer(4)
          primary: true
          autoincrement: true
        date:              
          type: date
        code:              
          type: string(255)
        protege:           
          type: boolean
        supprime_id:
          type: integer(4)
      relations:
        Contrats:
          foreignAlias: Normes
          class: Contrat
          refClass: ContratNormeSurveilles
        Supprime:
          foreignType: one
          onDelete: CASCADE
      attributes:
        export: all
        validate: true
    
    Surveillance:
      tableName:
        surveillances
      columns:
        id:
          type: integer(4)
          primary: true
          autoincrement: true
        date_debut:        
          type: date
        date_fin:          
          type: date
      relations:
        Recueils:
          foreignAlias: Surveillances
          class: Recueil
          refClass: ContratRecueilSurveilles
        Contrats:
          foreignAlias: Surveillances
          class: Contrat
          refClass: ContratRecueilSurveilles
        Normes:
          foreignAlias: Surveillances
          class: Norme
          refClass: ContratNormeSurveilles
    
    ContratNormeSurveilles:
      columns:
        contrat_id:
          type: integer(4)
          primary: true
        norme_id:
          type: integer(4)
          primary: true
        surveillance_id:
          type: integer(4)
          primary: true
      relations:
        Contrat:
          onDelete: CASCADE
        Norme:
          onDelete: CASCADE
        Surveillance:
          onDelete: CASCADE

  4. #4
    Membre confirmé Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Par défaut
    finalement j'ai regénéré l'administration et finalement par miracle ça marche.
    pour la récursivité, je crois avoir bientôt trouvé
    en fait j'aimerai définir pour une table, deux mêmes clés étrangères pointant sur une table :
    norme
    id_norme

    remplacepar
    id_norme
    id_norme_remplace

    quelqu'un sait comment le mettre dans le schema.yml ?

    merci d'avance

  5. #5
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Par défaut
    La version actuelle de symfony ne gère pas du tout les associations réflexives. tu vas te prendre une erreur sur sfPropelManyToMany...

    Lis cà : http://www.developpez.net/forums/sho...d.php?t=548069

  6. #6
    Membre confirmé Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Par défaut
    Citation Envoyé par Giovanny Temgoua Voir le message
    La version actuelle de symfony ne gère pas du tout les associations réflexives. tu vas te prendre une erreur sur sfPropelManyToMany...
    surtout en utilisant Doctrine ...

Discussions similaires

  1. [uml] classe d'association ou pas?
    Par tridoo dans le forum Diagrammes de Classes
    Réponses: 6
    Dernier message: 12/11/2006, 18h21
  2. Réponses: 7
    Dernier message: 17/05/2006, 12h20
  3. [UML] Classe d'association et cardinalités
    Par djflex68 dans le forum Diagrammes de Classes
    Réponses: 6
    Dernier message: 08/02/2006, 19h08
  4. Classe d'association ? comment est ce implémenté ??
    Par clawhammer dans le forum Diagrammes de Classes
    Réponses: 3
    Dernier message: 16/09/2004, 19h40
  5. problème de classe d'association
    Par Nip dans le forum Diagrammes de Classes
    Réponses: 8
    Dernier message: 08/06/2004, 16h08

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