Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-07-2009 22:07:34

yann05
Membre
Date d'inscription: 26-07-2009
Messages: 13

[Résolu] Classe introuvable

Salut à tous,

Je suis débutant dans la programmation avec le Zend Framework (1.8), et je tiens d'ailleur à remercier la communauté de développeur qui à mis en place ce site Internet.

J'ai deux tables : conteneur et pack
Il peut y avoir plusieurs pack dans un conteneur, c'est pourquoi j'ai placé une clé étrangère num_cont dans la table pack.
Je souhaite afficher les pack d'un conteneur, j'ai donc créer un controlleur "conteneurControlleur" avec une methode ConsulterAction() :

    function consulterAction(){
        //$num_cont           = $this->_getParam('num_cont');
        $conteneurTable     = new Model_DbTable_Conteneur();
        $conteneur          = $conteneurTable->find(1)->current();
        $packsDuConteneur   = $conteneur->findDependentRowset('pack');
        $this->view->packs  = $packsDuConteneur;
    }

J'ai une classe "Pack" placée dans Models/Db_table/Table/Pack.php

class Model_DbTable_Pack extends Zend_Db_Table_Abstract{
    protected $_name = 'pack';
    protected $_referenceMap    = array(
        'conteneur' => array(
            'columns'           => array('num_cont'),
            'refTableClass'     => 'Conteneur',
            'refColumns'        => array('num_cont')
        )
    );
}

Ainsi qu'une classe "Conteneur" placée au meme endroit Models/Db_table/Table/Conteneur.php

class Model_DbTable_Conteneur extends Zend_Db_Table_Abstract{
   
    protected $_name = 'conteneur';
    protected $_dependentTables = array('pack');
}

J'ai également pris soin de créer une vue "views/scripts/conteneur/Consulter.phtml"

...
<?php foreach($this->packs as $pack) : ?>
<tr>
    <td><?php echo $this->escape($pack->libelle);?></td>
    <td><?php echo $this->escape($pack->descri);?></td>
    <td>
        <a href="<?php echo $this->url(array('controller'=>'pack', 'action'=>'consulter', 'num_pack'=>$cont->num_pack));?>">Consulter</a>
    </td>
</tr>
<?php endforeach; ?>
...

et c'est la ou intervient mon erreur (sur cette dernière page Consulter.phtml)

An error occurred
Application error
Exception information:

Message: File "pack.php" does not exist or class "pack" was not found in the file
Stack trace:

#0 /home/yan/Bureau/www/skicenter/application/controllers/ConteneurController.php(21): Zend_Db_Table_Row_Abstract->findDependentRowset('pack')
#1 /home/yan/Bureau/www/skicenter/library/Zend/Controller/Action.php(512): ConteneurController->consulterAction()
#2 /home/yan/Bureau/www/skicenter/library/Zend/Controller/Dispatcher/Standard.php(288): Zend_Controller_Action->dispatch('consulterAction')
#3 /home/yan/Bureau/www/skicenter/library/Zend/Controller/Front.php(945): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#4 /home/yan/Bureau/www/skicenter/library/Zend/Application/Bootstrap/Bootstrap.php(77): Zend_Controller_Front->dispatch()
#5 /home/yan/Bureau/www/skicenter/library/Zend/Application.php(328): Zend_Application_Bootstrap_Bootstrap->run()
#6 /home/yan/Bureau/www/skicenter/public/index.php(26): Zend_Application->run()
#7 {main}
 
Request Parameters:

array(4) {
  ["controller"]=>
  string(9) "conteneur"
  ["action"]=>
  string(9) "consulter"
  ["num_cont"]=>
  string(1) "1"
  ["module"]=>
  string(7) "default"
}

La classe Pack dans Pack.php existe bien mais sous le nom " Model_DbTable_Pack", si je change pour "Pack" ça bug pareil.

De plus, si je veux appeller ma classe "Model_DbTable_Conteneur" différement genre "Conteneur", j'ai une erreur : "Model_DbTable_Conteneur" introuvable!

Voilou j'ai du mal a comprendre ces deux problemes.

J'ai vu que quelqu'un d'autre avait le même problème que moi en effectuant une recherche sur Google, apparemment tout fonctionne bien si je la place "Pack.php "dans le dossier "Public"

Que se passe t'il?

Merci pour votre aide

Dernière modification par yann05 (08-08-2009 17:13:29)

Hors ligne

 

#2 30-07-2009 20:48:36

yann05
Membre
Date d'inscription: 26-07-2009
Messages: 13

Re: [Résolu] Classe introuvable

Salut,

J'ai trouvé le problème ! après plusieurs jours de recherches :

Dans la classe Model_DbTable_Pack extends,
la propriété 'refTableClass' pointe vers 'Conteneur', alors que ma classe s'appelle 'Model_DbTable_Conteneur'

Merci quand meme
A bientot

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