我想存儲數據庫中的Zend框架的自定義路由。我已經創建了路線,但我遇到的問題是,當我添加路線時,它看起來像Zend尚未創建與數據庫的連接。強制Zend框架連接到數據庫比平常早
有誰知道這個過程最初發生在哪裏,或者我可以如何強制數據庫從Bootstrap.php中的init_routes函數進行連接?
UPDATE:
什麼我從bootstrap.php中做的是調用了一個模型,將返回所有的廠商Zend_Controller_Router_Route_Static對象。這裏是我使用內部bootstrap.php中
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$vendor_routes = new Application_Model_Vendor();
$vendor_routes = $vendor_routes->getStaticRoutes();
的getStaticRoutes中的代碼()函數是如下的代碼:
public function getStaticRoutes() {
$select = $this->select();
$select->from($this)
->where("featured = 1");
$rows = $this->fetchAll($select);
foreach($rows as $row) {
print_r($row);
}
}
該功能被包含在延伸Zend_Db_Table_Abstract
一個模型我得到的錯誤如下:
<b>Fatal error</b>: Uncaught exception 'Zend_Db_Table_Exception' with message 'No adapter found for Application_Model_Vendor' in /var/www/vhosts/weddingdir/weddingdir/library/Zend/Db/Table/Abstract.php:754
Stack trace:
#0 /var/www/vhosts/weddingdir/weddingdir/library/Zend/Db/Table/Abstract.php(739): Zend_Db_Table_Abstract->_setupDatabaseAdapter()
#1 /var/www/vhosts/weddingdir/weddingdir/library/Zend/Db/Table/Abstract.php(268): Zend_Db_Table_Abstract->_setup()
#2 /var/www/vhosts/weddingdir/weddingdir/application/Bootstrap.php(17): Zend_Db_Table_Abstract->__construct()
#3 /var/www/vhosts/weddingdir/weddingdir/library/Zend/Application/Bootstrap/BootstrapAbstract.php(666): Bootstrap->_initRoutes()
#4 /var/www/vhosts/weddingdir/weddingdir/library/Zend/Application/Bootstrap/BootstrapAbstract.php(619): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('routes')
#5 /var/www/vhosts/weddingdir/weddingdir/library/Zend/Application/Bootstrap/BootstrapAbstract.php(583): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap(NUL in <b>/var/www/vhosts/weddingdir/weddingdir/library/Zend/Db/Table/Abstract.php</b> on line <b>754</b><br />
ks再次!
My Bootstrap.php裏面沒有_initDb()。我會假設它在需要時連接到數據庫(它在應用程序中的其他任何地方),但是在Bootstrap內部沒有。我在想這是因爲數據庫連接信息存儲在application.ini文件中,並且它可能還沒有解析該文件或其他東西。 – 2010-10-11 20:07:29
application.ini的東西在所有的_init方法之前運行,所以你應該沒問題。你可以發表你如何訪問/使用路徑方法中的db類的例子嗎? $這 - >的getResource( 'DB');應該根據application.ini數據設置DB類,以便您可以嘗試使用var_dump()來查看所獲得的結果。 – 2010-10-11 20:09:50
我在第一篇文章中添加了更多信息。 – 2010-10-11 20:28:27