Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai un probleme pour afficher des vues,
voila mon erreur:
Fatal error: Class 'Customers' not found in D:\www\Quick_Start_zend\application\controllers\CustomersController.php on line 8
code de CustomersController.php
<?php class CustomersController extends Zend_Controller_Action { public function indexAction() { $table = new Customers(); $this->view->customers = $table->fetchAll(); } }
pour Customers.php
class Customers extends Zend_Db_Table { protected $_name = 'customers'; protected $_primary = 'id'; }
et pour index.php
<html> <body> <table> <thead> <th>ID</th> <th>Artist</th> </thead> <tbody> <?php foreach($this->customers as $customer) { ?> <tr> <td><?php echo $customer->id; ?></td> <td><?php echo $customer->artist; ?></td> </tr> <?php } ?> </tbody> </table> </body> </html>
Quelqu'un aurait-il des informations là-dessus?
merci
A+
Dernière modification par Mr.MoOx (14-02-2009 02:07:25)
Hors ligne
Tu dois inclure ta classe Customers avant de l'instancier.
Pour un question de clarté je te conseil d'utiliser le foreach comme ça:
<html> <body> <table> <thead> <th>ID</th> <th>Artist</th> </thead> <tbody> <?php foreach($this->customers as $customer) : ?> <tr> <td><?php echo $customer->id; ?></td> <td><?php echo $customer->artist; ?></td> </tr> <?php endforeach; ?> </tbody> </table> </body> </html>
Hors ligne
Salut,
Si tu n'es pas en autoLoad sur Zend_Loader, il faut charger manuellement ta classe avant d'instancier l'objet.
Zend_Loader::loadClass('Customers');
En s'assurant que tu as bien rajouté le dossier contenant les classes de modèles de données dans ton include_path.
Sinon tu peux aussi utiliser un bon vieux require_once avec le chemin complet.
A+ benjamin.
Dernière modification par Delprog (13-02-2009 16:23:44)
Hors ligne
Bonjour,
Pour autoLoad c'est fait en index.php
require_once "Zend/Loader.php"; Zend_Loader::registerAutoload();
A+
Dernière modification par songaila (13-02-2009 17:03:03)
Hors ligne
Ok, et dans l'include_path tu as bien ajouté le dossier contenant les modèles ?
Dernière modification par Delprog (13-02-2009 17:25:43)
Hors ligne
Bonjour
Exactement c'est ca le probleme,
j'ajoutai le dossier contenant les modèles,
$paths = array( APPLICATION_PATH . '/../library', APPLICATION_PATH . DIRECTORY_SEPARATOR . 'models', get_include_path() ); set_include_path(implode(PATH_SEPARATOR, $paths));
C bon merci bcp
A+
Hors ligne
Pages: 1