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