+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre actif
    Inscrit en
    juin 2008
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 27

    Informations forums :
    Inscription : juin 2008
    Messages : 222
    Points : 156
    Points
    156

    Par défaut comportement HABTM étrange

    Bonjour,

    Je débute avec CakePhp et je galère à trouver pourquoi CakePHP se comporte ainsi. Voici mon problème :

    J'ai une table ETB, une table SERV et une table ETB_SERV qui fait la jointure entre les 2.

    ETB_SERV contient un champ ETB_ID et un champ SERV_ID.

    Dans ETB_SERV j'ai des données de type :

    ID|ETB_ID|SERV_ID|FIELD1
    1 | 102 | 4 | X
    2 | 102 | 8 | X
    3 | 102 | 15 | X
    4 | 102 | 4 | Y

    Dans mon modèle ETB, j'ai ceci :


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     class Etb extends AppModel {
     
          var $name = 'Etb';
          var $displayField = 'nom';
                var $hasAndBelongsToMany = array(
              'Serv' =>
              array('className' => 'Serv',
                'joinTable' => 'etb_serv',
                'foreignKey' => 'etb_id',
                'associationForeignKey' => 'serv_id'
              )
        );
        }
    Le problème c'est dans mon controller, quand je fais ceci :

    Code :
     $this->Etb->find('first', array('conditions' => array('Etb.id ='.$idEtb),'order'=>'Etb.id'));
    Je ne récupère pas la ligne d'ID 4 de ma table ETB_SERV. En gros, si j'ai plusieurs fois un SERV_ID de même valeur, je ne récupère que le premier alors qu'il me les faudrait tous...

    Est-ce normal ? Que dois-je faire pour tous les avoir ? Je vous remercie d'avance.

  2. #2
    Candidat au titre de Membre du Club
    Inscrit en
    janvier 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : janvier 2010
    Messages : 43
    Points : 12
    Points
    12

    Par défaut

    Tu devrais pas faire un find 'all' au lieu de find 'first' ?

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •