2011-01-28 7 views
0

モデルを呼び出すとき何らかの理由で、デフォルト以外の別のデータベースコンフィグレーション名を使用できません。Ko3:モデルパラメータでデータベースコンフィグを変更する

$carrier = new Model_Carrier('as400'); 

これは「デフォルト」設定に戻ります。私がデフォルトの設定の名前を変更したり削除したりしても、まだそれに行きます。私はdatabase.phpファイルに "as400"設定を持っています。そのas400をデフォルトとして設定すると、動作しますが、デフォルトのMySQLを使用するには他のモデルが必要です。 as400はmysqlではありません。これは私が書いたODBCドライバです。 Kohana documentationから

答えて

0

私は、クエリを実行したときに、私が持っていました実行パラメータにデータベース設定名を入れてください。なぜ私はすでにクエリで定義したデータベースには行かないのか分かりません。

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

:各モデルの

は、あなたが上でクエリを実行するデータベース構成ORM定義することができます。モデルの$ _db変数をオーバーライドすると、ORMはそのデータベースに接続します。

あなたのケースでは、あなたのモデルにあなたがこれを持つことができますが:

protected $_db = 'as400'; 

編集 ではなく、これを使用してみてください:

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

を持っているでしょう。私はモデルを拡張していますが、理論的にはまだ動作するはずです。私は保護された$ _db = 'as400'を置く。私のモデルでは、それでもデフォルトに行く – mikelbring

+0

さて、私は私の答えを更新しました。 – dusan

+0

私はconfig名を私のexecute()に入れなければならないようでした。私はそれがモデルDBが何であったかを実行するだけだと考えました。 – mikelbring

0

ORMモデルからこの問題をまだ見ている人は、 diferente DB構成のための変数は、その$ _db_group

だから、私はORMを使用していない

$_db_group = 'as400'; 
関連する問題