2010-08-14 3 views
3

Работает через учебник zend & получить это сообщение, & не уверен, где искать.zend newbie question - «Адаптер не найден для»

спасибо,

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

Какой учебник Zend? Разум опубликовал ссылку на него? –

+0

http://www.youtube.com/user/integral30#p/u/58/kuNNwpeNn4s хороший набор обучающих программ, к сожалению, он не вдаваться в излишние подробности с доступом дб –

ответ

8

Для подключения к использованию базы данных:

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

и установить адаптер по умолчанию:

Zend_Db_Table::setDefaultAdapter($dbAdapter); 

Есть несколько способов, чтобы установить специальный адаптер для таблица без настройки адаптера по умолчанию и т. д.

Вы можете посмотреть более подробную информацию в документации ... пожалуйста, прочитайте это: D

[] s

+0

FYI установить адаптер по умолчанию особенно если вы используете плагин ресурса multiDb для zend_application –

1

Фелипе был правильным, в то время как учебник требуется это установить в 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

Добавить следующий код в загрузочном файле в папке приложения:

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(); 

     } 

} 

и следующий код в 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 

это проблема не конфигурации база данных