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 de modèles [CakePHP]


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 53
    Points
    53
    Par défaut Association de modèles
    Bonjour,

    Je débute avec cakePHP et j'ai un problème tout simple. Je l'expose.

    J'ai des pays et des continents.
    Un pays appartient à un continent.
    J'ai créé deux tables, les modèles, les vues, les controllers.

    C'est au niveau de l'association à la mode cakePHP que j'ai du mal, je m'explique.

    Voici la définition de mes modèles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    class Pays extends AppModel {
    	var $displayField ='nom';
    	var $belongsTo = array(
    		'Continent' => array(
    			'classname' => 'Continent'));
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    class Continent extends AppModel {
    	var $displayField ='nom';
    	var $hasMany = array(
    		'Pays' => array(
    			'classname' => 'Pays',
    			'foreignKey' =>  'continent_id',
    	));
    }
    Dans un premier temps, j'ai cherché à afficher les pays avec les infos du continent associé :

    dans le controller des pays :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    all = $this->Pays->find('all');
    $this->set('all', $all);
    et dans la vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <pre><?php echo 'all:'; print_r($all); ?></pre>
    Ca fonctionne nickel, j'ai chaque pays avec les infos de son continent.


    Maintenant, je veux afficher la liste des continents et avec chacun d'eux la liste des pays associés, or je n'y arrive pas.

    Voilà le code dans le controller des continents :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $aa = $this->Continent->find('all');
    $this->set('aa', $aa);
    et le code dans la vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <pre><?php echo 'aa:'; print_r($aa); ?></pre>
    Rien n'y fait, je n'ai que la liste des continents sans aucun pays.
    Je pensais que la jointure serait automatique grâce à "hasMany", ce n'est pas ça ?

    Merci pour votre aide.
    A bientôt

  2. #2
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 53
    Points
    53
    Par défaut
    Ça y est, j'ai trouvé, mes fichiers de modèles étaient eu pluriel...
    A bientôt pour d'autres questions !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Association reflexive ; modèle conceptuel/logique
    Par kawaya dans le forum Modélisation
    Réponses: 4
    Dernier message: 22/07/2013, 14h53
  2. Association entre modèles
    Par huguesbrahier dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 14/12/2012, 21h37
  3. Réponses: 2
    Dernier message: 07/09/2009, 12h52
  4. Réponses: 24
    Dernier message: 13/03/2008, 09h20

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