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

Bibliothèques et frameworks PHP Discussion :

Association d'une table avec elle même


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Association d'une table avec elle même
    Bonjour,

    Je cherche à créé une association entre une table et elle même ceci afin de définir des catégories et des sous-catégories et ainsi de suite, une catégorie pouvant avoir de multiple sous catégorie.

    J'ai donc pensé à faire une association $hasMany avec un alias CategorieInferieure et une association $hasOne avec un alias CategorieSuperieure.
    Hélas dans la console de log de cake il ne m'affiche que le Select des catégories supérieure.

    Quelqu'un aurait-il déjà eu ce souci ?

    Voici mon sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE IF NOT EXISTS `categories` (
      `id_categorie` int(11) NOT NULL auto_increment,
      `nom` varchar(128) NOT NULL,
      `niveau` smallint(4) NOT NULL,
      `id_categorie_sup` int(11) NOT NULL,
      `id_document` int(11) NOT NULL COMMENT 'clé étrangère pour la vignette',
      PRIMARY KEY  (`id_categorie`)
    )
    Voici mon php :

    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
     
    class Categorie extends AppModel
    {
    	var $name = 'Categorie';
     
    	var $primaryKey = 'id_categorie';
     
    	var $belongTo = array(
            'CategorieSuperieure' => array(
                'className'    => 'Categorie',
                'foreignKey'   => 'id_categorie_sup'
            )
        );
     
         var $hasMany = array(
            'CategorieInferieure' => array(
                'className'    => 'Categorie',
                'foreignKey'   => 'id_categorie_sup'
            )
        );

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2005
    Messages : 58
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    La cle pour la declaration de la relation "belongs to" est "belongsTo" (et non "belongTo", il faut un s).
    Par contre, as-tu une raison pour ne pas utiliser les conventions de CakePHP ?

    Sache aussi qu'il existe un comportement livre avec le framework qui permet de gerer facilement une arborescence. Je t'invite a lire la doc du TreeBehavior.

    Pierre

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Merci de ta réponse, effectivement je venais de me rendre compte de ma faute de frappe (un dyslexique et cakePHP ne doivent pas faire bon ménage ^^). Mais ta solution me semble beaucoup plus économique.

    Merci !

  4. #4
    Membre régulier
    Profil pro
    Dév FrontEnd
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dév FrontEnd

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 114
    Points
    114
    Par défaut
    Sinon, cette ligne me paraît bizarre ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `id_categorie_sup` int(11) NOT NULL,
    Tu auras forcément une catégorie initiale, qui n'aura pas de catégorie_sup !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Le système d'arbre a bien fonctionné pour mon menu. Mais je cherche maintenant à mettre en place un système de suggestions.
    Par exemple un Produit A est lié à 3 autres Produits B, C et D, j'ai donc voulu mettre en place une relation HABTM de ma table produit vers elle même, mais je ne saisi pas comment sauvegarder uniquement une relation via CakePHP.

    Dans l'attente de vos réponse,
    K.

  6. #6
    Membre régulier
    Profil pro
    Dév FrontEnd
    Inscrit en
    Avril 2005
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dév FrontEnd

    Informations forums :
    Inscription : Avril 2005
    Messages : 239
    Points : 114
    Points
    114
    Par défaut
    Sauvegarde l'objet et si tes liaisons sont bien déclarées, Cake les sauvegardera automatiquement !

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci pontus,
    Effectivement quand on s'y plonge un peu le système d'association de cake est très bien conçu.
    K.

Discussions similaires

  1. [Modèle Relationnel] jointure d'une table avec elle-même
    Par johnny3 dans le forum Schéma
    Réponses: 11
    Dernier message: 26/04/2015, 00h15
  2. Table de jointure d'une entité avec elle-même
    Par Danger dans le forum Hibernate
    Réponses: 0
    Dernier message: 15/05/2009, 21h13
  3. [SQL2K] delete cascade d'une table sur elle même
    Par StormimOn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2006, 16h28
  4. Croisement d'une table avec elle même
    Par lelapin dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/09/2005, 07h44
  5. [arborescence] jointure d'une table avec elle même ?
    Par Celelibi dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/11/2004, 18h48

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