Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 31-03-2009 10:41:05

matdev
Membre
Date d'inscription: 31-03-2009
Messages: 172

[resolu]Pb avec un findDependentRowset

Bonjour,

je débute avec Zend depuis hier et me forme pour l'instant à l'aide de petits tutoriaux. jusque là tout se passe bien sauf que je ne parviens pas visiblement à récupérer d'informations avec l'instruction findDependentRowset entre deux tables liées.

Je travaille actuellement sur le tutoriel suivant -> http://www.reseaucerta.org/cotecours/ccMVC/index.html
Je ne parviens pas à afficher la liste de mes étudiants affectés à un diplome (20.3. Relation Un-à-Plusieurs (One to Many))

Voici mes sources:

Models

Code:

<?php
class Diplome extends Zend_Db_Table_Abstract {
  protected $_name = 'diplome';
  protected $_primary = 'id';
  protected $_rowClass = 'DiplomeRow';   
  protected $_referenceMap    = array(
        'Responsable' => array(
            'refColumns'        => 'id',
            'refTableClass'     => 'Enseignant',
            'columns'           => 'idResponsable',
        ));
}
?>

Code:

<?php
class DiplomeRow extends Zend_Db_Table_Row_Abstract {
  public function getInscriptions(){
    return  $this->findDependentRowset('Inscription');
  }
  public function getResponsable() {
    return $this->findParentRow('Enseignant');
  }
  public function getNbInscrits(){
    // TODO
    return -1;
  }
}
?>

Code:

 <?php
class Inscription extends Zend_Db_Table_Abstract {
  protected $_name = 'inscription';
  protected $_rowClass = 'InscriptionRow';
  protected $_referenceMap    = array(
        'Diplome' => array(
            'refColumns'        => array('id')
            'refTableClass'     => 'Diplome',
            'columns'           => array('idDiplome'),
  ),
        'Etudiant' => array(
            'refColumns'        => array('id')
            'refTableClass'     => 'Etudiant',
            'columns'           => array('idEtudiant'),
  )
  );
}
?>

Code:

<?php
class InscriptionRow extends Zend_Db_Table_Row_Abstract {
  //  private $idEtudiant;
  //  private $idDiplome;
  //  private $noteExamen;
  //  private $nbSemStage;
  public function estRecu() {
    // TODO
    return false;
  }
  public function getNomEtudiant() {
    return $this->findParentRow('Etudiant')->nom;
  }
  public function getLibDiplome() {
    return $this->findParentRow('Diplome')->libelle;
  }
}
?>

Controlers

Code:

class ResultatsController extends Zend_Controller_Action
{
  public function init()
  {   
        
  }
  public function preDispatch()
  {

  }
  public function indexAction()
  {
    $registry = Zend_Registry::getInstance();
    $db = $registry->get('db');
    $d = new Diplome($db);
    $select = $d->select();
    $this->view->diplomes=$d->fetchAll($select);    
    $this->render();
  }
  public function postDispatch()
  {

  }
...
  public function voiretudiantsAction()
  {
         $registry = Zend_Registry::getInstance();
    $db = $registry->get('db');      
    $idDplome=$this->_getParam('diplome', 1);
    $this->view->iddip=$idDplome;
    $dt = new Diplome($db);
    $diplome = $dt->find($idDplome)->current();
    $inscriptions=$diplome->getInscriptions();
    $this->view->inscriptions=$inscriptions;
    $this->view->diplome=$diplome->libelle;
    $this->render();
   }  
}

Views

Code:

<table>
 <caption>Les &eacute;tudiants inscrits au dipl&ocirc;me <?=$this->diplome ?></caption>
 <thead>
  <tr>
   <th>Etudiant</th>
   <th>Stage <br>Nombre de <br>semaines r&eacute;alis&eacute;</th>  
   <th>note</th>
   <th>re&ccedil;u</th>
  </tr>
 </thead>
 <tbody>
 <?php
 foreach ($this->inscriptions as $inscription) {
   echo '<tr><td>' . $inscription->getNomEtudiant() . '</td>';
   echo ' <td>' . $inscription->nbSemainesStage .'</td>';
   echo '<td>'. $inscription->note .'&nbsp; </td>';
   echo '<td>'.$inscription->estRecu() ."&nbsp;</td></tr>\n";
 }
 ?>
 </tbody>
</table>

Le problême rencontré est que rien ne s'affiche sur ma page. J'ai testé différents éléments et je sais que je récupère bien le diplome mais visiblement pas les inscriptions qui lui sont liées. si je mets $inscriptions=$diplome->getInscriptions(); en commentaire la pages s'affiche (évidemment sans la liste des inscriptions mais avec les information pour le diplome).

Quelqu'un aurait-il une idée ?

Dernière modification par matdev (31-03-2009 12:13:00)

Hors ligne

 

#2 31-03-2009 12:12:42

matdev
Membre
Date d'inscription: 31-03-2009
Messages: 172

Re: [resolu]Pb avec un findDependentRowset

C'est ok, je viens de trouver la réponse seul et c'était un simple oubli de virgules dans mon $_referenceMap du model Inscription.

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