2011-12-06 63 views
1

如何在core/my_router.php內啓動連接? 如果我試試這個:CodeIgniter 2 my_router.php數據庫連接

$this->db->query(); 

它會返回一個錯誤。

這樣做是正確的還是CodeIgniter有另一種方法來做到這一點?我有一個字段錶行中的控制器,我需要執行一個查詢來恢復它並加載正確的控制器。

的錯誤是: 調用一個成員函數查詢()路由器類的CI實例之前加載的非對象

+1

你得到了什麼錯誤信息? –

+1

調用一個非對象的成員函數query()我認爲只有在controllers目錄中,方法 - > db在core/diretorie中無效? – David

回答

3

上可供這就是爲什麼你不能使用$CI =& get_instance()$CI->db->query()。調用$this->db->query()以及類似的方法只能在您的控制器,型號和視圖中使用(請參閱user guide)。

下面是CodeIgniter論壇的一個線程,它爲您的問題提供了一個解決方案,但它適用於框架的1.7.2版本,因此您可能需要進行一些修改。請記住,您將編輯核心文件,所以請謹慎使用。

SOLUTION: Database Class/get_instance() in Router.php

+0

這很有趣,但看起來很奇怪,我認爲只是做一個菜鳥我做錯了什麼。你會怎麼做?我可以做一些通用控制器,可以作爲路由器和所有其他驅動程序或類似的東西? – David

+0

你究竟想要完成什麼?路由用戶指南中的部分可能會有所幫助。 http://codeigniter.com/user_guide/general/routing.html – birderic