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 :

table many to many et champ supplémentaire


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 15
    Par défaut table many to many et champ supplémentaire
    Bonjour,
    je développe un site sous symfony 1.4 avec l'ORM doctrine.
    J'aimerai mettre en place un système de catégorie sur plusieurs niveau, chaque catégorie pouvant bien sûr comprendre plusieurs articles.

    J'ai réussi à faire ce que je voulais jusqu'à présent mais je voudrai rajouté un champ "position" supplémentaire à la table qui relie les articles aux catégories.

    Dans le schema.yml aucun problème par contre je n'ai aucune idée de ce que je dois ajouter dans mon fichiers yml qui ajoute les données initiales.

    Voici le fichier schema.yml
    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
    # config/doctrine/schema.yml
    Article:
      tableName: article
      columns:
        titre: { type: string(255), notnull: true }
        url:   { type: string(255), notnull: true, unique: true }
        meta_desc: { type: string(255)}
        intro: { type: clob, notnull: true }
        texte: { type: clob, notnull: true }
        etat:  { type: integer(1), notnull: true}
      relations:
        Categories:
          class:          Categorie
          refClass:       CategorieArticle
          foreignAlias:   Articles
     
    Categorie:
      tableName: categorie
      columns:
        nom:   { type: string(255), notnull: true }
        url:   { type: string(255), notnull: true, unique: true }
      relations:
        CategoriesMeres:
          class:          Categorie
          refClass:       CategorieCategorie
          foreignAlias:   Categories
          local: categorie_id
          foreign: categorie_mere_id
     
    CategorieArticle:
      tableName: categorie_article
      columns:
        categorie_id:  { type: integer, primary: true, notnull: true }
        article_id:   { type: integer, primary: true, notnull: true }
        position:     {type: integer, notnull: true }
      relations:
        Categorie:  { onDelete: CASCADE, local: categorie_id, foreign: id }
        Article: { onDelete: CASCADE, local: article_id, foreign: id }
     
    CategorieCategorie:
      tableName: categorie_categorie
      columns:
        categorie_id:  { type: integer, primary: true, notnull: true }
        categorie_mere_id:   { type: integer, primary: true, notnull: true }
        position:     {type: integer, notnull: true }
    Et mon fichier fixtures.yml
    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
    categorie:
      jurisprudence:        
        nom: Jurisprudence
        url: jurisprudence
      victimesIndemnisation:
        nom: Victimes et indemnisation
        url: victimes_et_indemnisation
      victimesAccidents:        
        nom: Victimes d'accidents
        url: victimes-d-accidents
        CategoriesMeres: [victimesIndemnisation,jurisprudence]
     
    article:
        article1:
            titre: Embouteillage
            texte: mon texte ici !
            url: embouteillage
            etat: 1
            meta_desc: Des embouteillage à Bordeaux
            Categories: [victimesIndemnisation,victimesAccidents]

  2. #2
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Si tu ajoutes un champ à ta table de liaison, tu dois renseigner directement cette table dans les fixtures et ne plus passer par l'entrée CategoriesMeres dans la table Categories.

    NB : si tu veux gérer un ordre avec ce champ 'position' que tu ajoutes, je pense que tu devrais étudier le csDoctrineActAsSortablePlugin qui fait justement ce travail.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/02/2013, 21h23
  2. Table de jointure Many-to-Many
    Par Yasvah dans le forum Langage SQL
    Réponses: 0
    Dernier message: 09/11/2012, 16h10
  3. Réponses: 9
    Dernier message: 20/08/2012, 22h44
  4. Mapper table d'association many-to-many
    Par zaineb.z dans le forum Hibernate
    Réponses: 13
    Dernier message: 23/06/2007, 20h09
  5. Un peu de mal a comprendre le concepte "one-to-many" et "many-to-many"
    Par chriscoolletoubibe dans le forum Hibernate
    Réponses: 4
    Dernier message: 29/03/2007, 18h50

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