Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 21-11-2010 09:43:48

Kaimite
Membre
Lieu: Marseille
Date d'inscription: 16-06-2008
Messages: 144
Site web

Relations ManyToMany

Bonjour,

Je suis en train d'essayer de mettre en place une relation ManyToMany mais je ne comprends pas bien dans quelles class déclarer mes références...

Voici à quoi ressemble mes tables :

http://www.kaimite.fr/bdd.gif

lng_type me sert à savoir si c'est une bande son ou des sous-titres...

Et voici mes classes :

Code:

<?php

class tblLangue extends Zend_Db_Table_Abstract
{
    protected $_dependentTables = array('tblFilmHasLangue');
}

class tblFilm extends Zend_Db_Table_Abstract
{
    protected $_dependentTables = array('tblFilmHasLangue');    
}

<?php

class tblFilmHasLangue extends Zend_Db_Table_Abstract
{    
    protected $_referenceMap    = array(
        'Langues'  => array(
            'columns'            => 'lng_id',
            'refTableClass'        => 'tblLangue',
            'refColumns'        => 'lng_id'
        ),
        'Films'    => array(
            'columns'               => 'flm_id',
            'refTablesClass'    => 'tblFilm',
            'refColumns'        => 'flm_id'
        )
    );
}

Et quand dans mon rowFilm je veux recuperer les langues du films je fais =

Code:

$langues = $this -> findManyToManyRowset( 'tblLangue', 'tblFilmHasLangue' );

Et j'obtiens le message suivant : No reference from table tblFilmHasLangue to table tblFilm

J'ai essayé de le tourner dans tous les ses mais j'ai toujours le message d'erreur.

Je n'arrive pas a comprendre dans quelles classes déclarer les relations et ou dépendance de tables.

Si quelqu'un veux bien me l'expliquer je suis preneur smile

Cordialement,
Kaimite

Hors ligne

 

#2 24-11-2010 15:17:52

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: Relations ManyToMany

Je ne trouve pas la raison de ton problème mais je peux te donner un conseil.

En utilisant Doctrine dans ton projet zend, MySQL Workbench te permet de généré à l'aide d'un plugin des classe automatiquement dans ton application. C'est classe sont étendu de Doctrine_Record.

C'est ultra rapide, je fais mon schéma graphique comme toi et pouf, en quelques clics, tout est intégré dans mon application. Je te conseils vivement d'y jetter un coup d'oeil car j'ai éloigné depuis longtemps le genre de questions que tu te poses actuellement.

De plus, sans être sûr, Doctrine devrait venir avec Zend par défault dans une prochaine version (ZF2 ??)



Pour revenir à ton problème, selon moi, tu devrais déclarer un truc dans ce genre dans ta classe de film:

Exemple Doctrine:

Code:

 $this->hasMany('tblFilmHasLangue as tblLangue', array(
             'local' => 'id',
             'foreign' => 'id'));

Hors ligne

 

#3 24-11-2010 15:29:14

Kaimite
Membre
Lieu: Marseille
Date d'inscription: 16-06-2008
Messages: 144
Site web

Re: Relations ManyToMany

Salut et merci pour la réponse.

J'ai avancé en utilisant mes propres méthodes mais je vais jetter un coup d'oeil a Doctrine car effectivement il sera avec le ZF2 et si en plus WorkBench peut me générer les classes.... que demander de plus smile

Cordialement,
Kaimite

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages