Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] adapter $db
Forum PHP.pl > Forum > PHP > Frameworki
istrd
Witam.
Mam problem z ZF. Chce żeby adapter $db był dostępny w całej aplikacji.
Zrobiłem plik config.ini
  1. [general]
  2. db.adapter= PDO_MYSQL
  3. db.config.host= localhost
  4. db.config.username= xx
  5. db.config.password= pxxx
  6. db.config.dbname= xxx


w index.php mam takie rzeczy (
  1. <?php
  2. error_reporting(E_ALL|E_STRICT);
  3. date_default_timezone_set('Europe/London');
  4. set_include_path('.' . PATH_SEPARATOR . './library'
  5. . PATH_SEPARATOR . './application/models/'
  6. . PATH_SEPARATOR . get_include_path());
  7.  
  8. include "Zend/Loader.php";
  9. Zend_Loader::loadClass('Zend_Controller_Front');
  10. Zend_Loader::loadClass('Zend_Config_Ini');
  11. Zend_Loader::loadClass('Zend_Registry');
  12. Zend_Loader::loadClass('Zend_Db');
  13. Zend_Loader::loadClass('Zend_Db_Table');
  14. Zend_Loader::loadClass('Zend_Paginator');
  15. Zend_Loader::loadClass('Zend_Paginator_Adapter_DbSelect');
  16. Zend_Loader::loadClass('Zend_View_Helper_PaginationControl');
  17.  
  18.  
  19. // setup controller
  20. $frontController = Zend_Controller_Front::getInstance();
  21. $frontController->throwExceptions(true);
  22. $frontController->setControllerDirectory('./application/controllers');
  23.  
  24. //// load configuration
  25. $config = new Zend_Config_Ini('./application/config.ini','general');
  26. $registry=Zend_Registry::getInstance();
  27. $registry->set('config','$config');
  28.  
  29. /// setup database
  30. $db=Zend_Db::factory($config->db->adapter,$config->db->config->toArray());
  31. Zend_Db_Table::setDefaultAdapter($db);
  32.  
  33.  
  34. // run!
  35. $frontController->dispatch();
  36.  


IndexContoroller.php
  1. <?php
  2. class IndexController extends Zend_Controller_Action {
  3. function init(){
  4. $this->view->baseUrl=$this->_request->getBaseUrl();
  5. Zend_Loader::loadClass('Movie');
  6. }
  7. function indexAction() {
  8.  
  9. $movie=new Movie();
  10. $this->view->title="Home Page";
  11.  
  12. $itemsPerPage=20;
  13. $adapter = new Zend_Paginator_Adapter_DbSelect($db->select()->from('dle_post'));
  14. $paginator = new Zend_Paginator($adapter);
  15. $paginator->setItemCountPerPage($itemsPerPage);
  16. $paginator->setCurrentPageNumber($this->_getParam('page'));
  17. $this->view->paginator=$paginator;
  18.  
  19.  
  20.  
  21. }
  22. }

errory

  1. Notice: Undefined variable: db in /var/www/mvzend/application/controllers/IndexController.php on line 20
  2.  
  3. Fatal error: Call to a member function select() on a non-object in /var/www/mvzend/application/controllers/IndexController.php on line 20
Daimos
no tutaj masz błąd:
  1. $adapter = new Zend_Paginator_Adapter_DbSelect($db->select()->from('dle_post'));

A nigdzie nie pobrałeś adaptera, zamień to na:


  1. $db = Zend_Db_Table::getDefaultAdapter();
  2. $adapter = new Zend_Paginator_Adapter_DbSelect($db->select()->from('dle_post'));
istrd
Wielkie dzięki ;]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.