2010-08-14 30 views
3

Travailler à travers un tutoriel zend & obtenir ce message, & ne sais pas où chercher.zend newbie question - "Aucun adaptateur trouvé pour"

grâce,

An error occurred 
Application error 
Exception information: 

Message: No adapter found for Model_DbTable_Books 
Stack trace: 

#0 C:\xampp\php\PEAR\Zend\Db\Table\Abstract.php(739): Zend_Db_Table_Abstract->_setupDatabaseAdapter() 
#1 C:\xampp\php\PEAR\Zend\Db\Table\Abstract.php(268): Zend_Db_Table_Abstract->_setup() 
#2 C:\xampp\htdocs\zftutorials\zftutorial\application\controllers\BooksController.php(34): Zend_Db_Table_Abstract->__construct() 
#3 C:\xampp\php\PEAR\Zend\Controller\Action.php(513): BooksController->listAction() 
#4 C:\xampp\php\PEAR\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('listAction') 
#5 C:\xampp\php\PEAR\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) 
#6 C:\xampp\php\PEAR\Zend\Application\Bootstrap\Bootstrap.php(77): Zend_Controller_Front->dispatch() 
#7 C:\xampp\php\PEAR\Zend\Application.php(358): Zend_Application_Bootstrap_Bootstrap->run() 
#8 C:\xampp\htdocs\zftutorials\zftutorial\public\index.php(26): Zend_Application->run() 
#9 {main} 

Request Parameters: 

array (
    'controller' => 'books', 
    'action' => 'list', 
    'module' => 'default', 
) 
+0

Quel tutoriel Zend? Envie de poster un lien? –

+0

http://www.youtube.com/user/integral30#p/u/58/kuNNwpeNn4s bonne série de tutoriels, malheureusement, il ne va pas dans trop de détails avec accès db –

Répondre

8

Pour vous connecter à l'utilisation de la base de données:

$dbAdapter = Zend_Db::factory('Pdo_Mysql', array(
    'host'  => '127.0.0.1', 
    'username' => 'webuser', 
    'password' => 'xxxxxxxx', 
    'dbname' => 'test' 
)); 

Et pour définir un adaptateur par défaut:

Zend_Db_Table::setDefaultAdapter($dbAdapter); 

Il y a quelques façons de définir un adaptateur spécifique une table sans configurer l'adaptateur par défaut et etc ....

Vous pouvez voir plus de détails dans la documentation ... s'il vous plaît, lire: D

[] 's

+0

FYI configurer la carte par défaut en particulier si vous utilisez le plugin de ressources multiDb pour zend_application –

1

Felipe était correct, alors que le tutoriel nécessaire dans cette configuration application.ini.

resources.db.adapter = mysqli 
resources.db.params.host = localhost 
resources.db.params.username = user 
resources.db.params.password = pw 
resources.db.params.dbname = test 
3

Ajouter le code suivant dans le fichier d'amorçage dans le dossier de l'application:

protected function _initDB() { 

     $dbConfig = new Zend_Config_Ini(APPLICATION_PATH . '/configs/db.ini'); 
     $dbAdapter = Zend_Db::factory($dbConfig->adapter, array(
      'host'  => $dbConfig->hostname, 
      'username' => $dbConfig->username, 
      'password' => $dbConfig->password, 
      'dbname' => $dbConfig->dbname 
     )); 

     My_Db_Table_Abstract::setDefaultAdapter($dbAdapter); 

     Zend_Registry::set('db', $dbAdapter); 


     if (APPLICATION_ENV == 'development') { 
      $profiler = new Zend_Db_Profiler_Firebug('All DB Queries'); 
      $profiler->setEnabled(true); 
      $dbAdapter->setProfiler($profiler); 
     } 
    } 


     public function _initRouter() 
     { 
      $front = Zend_Controller_Front::getInstance(); 
      $router = $front->getRouter(); 

     } 

} 

et le code suivant dans le fichier application.ini:

resources.db.adapter = mysqli 
resources.db.params.host = localhost 
resources.db.params.username = username of mysql(default root) 
resources.db.params.password = password of mysql(default blank means '') 
resources.db.params.dbname = test 

c'est le problème de ne pas la configuration de base de données