Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-02-2009 15:32:22

dmathieu
Membre
Lieu: Lyon, France
Date d'inscription: 09-02-2009
Messages: 50
Site web

Relations et DNRY/Propreté du code ?

Hoy,

J'ai le schema suivant :
- Une table category
- Une table question, chaque question étant rattachée à une catégorie.

J'ai donc, dans mon modèle category :

Code:

protected $_dependentTables = array('Question');

Et dans Question :

Code:

protected $_referenceMap    = array(
    'Category' => array(
        'columns'           => array('category_id'),
        'refTableClass'     => 'Category',
        'refColumns'        => array('id')
    ),
);

Jusque la, ça va.

Cependant lorsque je veux afficher une liste de catégories et la liste des questions qui y sont attribuées, je tombe à faire ça :

Code:

<ul>
    <?php while ($uplet = $this->category->current()): $datas = $uplet->toArray(); ?>
        <li>
            <h2><?= $datas['name'] ?></h2>
            
            <ul>
                <?php 
                $questions = $uplet->findQuestion();
                while ($question = $questions->current()): $q = $question->toArray();?>
                    <li><?= $q['name']; ?></li>
                <?php $questions->next();
                endwhile;?>
            </ul>
        </li>
    <?php $this->category->next();
    endwhile; ?>
</ul>

Qui est particulièrement crade à mon gout.

D'où mes questions :
- Est-il possible de récupérer les paramètres de l'uplet sans faire un toArray() ? Je n'ai pas vu de méthode getParam.
- next() ne retourne pas l'enregistrement courant, ce qui est bien dommage. Aucune alternative n'existe pour éviter de devoir exécuter les deux ?
- Et enfin une solution pour éviter d'avoir à faire un findQuestion() avant de lancer ma boucle et à avoir directement celle-ci ?


Il faut aimer les autres, non pour soi, mais pour eux - Proverbe Espagnol

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