2011-01-28 54 views
0

由於某些原因,當我調用模型時,除了默認值外,不能使用其他數據庫配置名稱。Ko3:使用模型參數更改數據庫配置

$carrier = new Model_Carrier('as400'); 

這只是又回到了「默認」的配置。即使我重命名或刪除默認配置,它仍然會嘗試去它。我在我的database.php文件中有一個「as400」配置。如果我將其設爲as400作爲我的默認值,那麼它可以工作,但我需要其他模型才能使用MySQL的默認值。 as400不是mysql。這是我寫的一個ODBC驅動程序。

回答

0

當我運行查詢,我不得不請將數據庫配置名稱放在execute參數中。我不明白爲什麼它不會通過我已經在查詢中定義的數據庫。

$result = DB::query(Database::SELECT, $sql) 
       ->param(':search', strtoupper($search).'%') 
       ->as_object() 
       ->execute($this->_db); 
1

Kohana documentation

對於每個模型,您可以定義數據庫配置ORM將在運行查詢。如果您在模型中重寫$ _db變量,則ORM將連接到該數據庫。

在你的情況,你的模型,你可以有這樣的:

protected $_db = 'as400'; 

編輯 嘗試使用這個:

$carrier = Model::factory('carrier', 'as400'); 
+0

我不使用ORM。我正在擴展模型,但理論上應該仍然有效。我把保護$ _db ='as400';在我的模型,但它仍然會默認 – mikelbring 2011-01-28 17:29:06

0

對於仍在從ORM模型中查看此問題的人,對於diferente DB配置變量及其$ _db_group

所以,你將不得不

$_db_group = 'as400';