8768 sujets

Développement web côté serveur, CMS

Je débute avec zend framework 2 etant sur le 1 précédemment j'essaie de creer plusieurs models et en ayant suivi les tuto officiel je ne parviens pas à resoudre mon problème:

Comment configurer la fonction getServiceConfig du module lorsque l'on a plusieurs table ??

Voici mon code

<?php
 
namespace Album;
 
// Add these import statements:
use Album\Model\Album;
use Album\Model\AlbumTable;
use Album\Model\Cd;
use Album\Model\CdTable;
use Zend\Db\ResultSet\ResultSet;
use Zend\Db\TableGateway\TableGateway;
 
class Module {
 
    public function getConfig() {
        return include __DIR__ . '/config/module.config.php';
    }
 
    public function getAutoloaderConfig() {
        return array(
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),
        );
    }
 
    // Add this method:
    public function getServiceConfig() {
        return array(
            'factories' => array(
                //configuration de la table albums
                'Album\Model\AlbumTable' => function($sm) {
                    $tableGateway = $sm->get('AlbumTableGateway');
                    $table = new AlbumTable($tableGateway);
                    return $table;
                },
                'AlbumTableGateway' => function ($sm) {
                    $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
                    $resultSetPrototype = new ResultSet();
                    $resultSetPrototype->setArrayObjectPrototype(new Album());
                    return new TableGateway('album89', $dbAdapter, null, $resultSetPrototype);
                },
                //configuration de la table cd
                'Album\Model\CdTable' => function($sm) {
                    $tableGateway = $sm->get('CdTableGateway');
                    $table = new CdTable($tableGateway);
                    return $table;
                },
                'CdTableGateway' => function ($sm) {
                    $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
                    $resultSetPrototype = new ResultSet();
                    $resultSetPrototype->setArrayObjectPrototype(new Cd());
                    return new TableGateway('cd89', $dbAdapter, null, $resultSetPrototype);
                },
            ),
        );
    }
 
}


L'erreur que j'ai est la suivante:

Fatal error: Class 'Album\Model\Cd' not found in C:\wamp\www\zf2\module\Album\Module.php on line 54

Merci de votre aide.

++ Smiley biggrin
Bonjour,

Je n'utilise pas ZF2 mais à première vue le message semble parlant non, as-tu vérifié l'existence de ta classe Cd ?