0

モジュール認証を ORM ドライバーとネイティブ セッションで使用しています。

データベース構成「default」および「customer_1」は、application/config/database.php にあります。

ログインする前に、デフォルトのデータベース構成を次のように変更します。

Kohana::$config->load('database')->default = Kohana::$config->load('database')->get('customer_1');

これは、Module Auth ログインの前に機能します。

デフォルトのデータベース構成を設定した後:

if (Auth::instance()->login($_POST['username'], $_POST['password']) === TRUE) { Request::current()->redirect(); }

これにより、次のエラーが発生します。

テーブル 'default_database.users' が存在しません [ SHOW FULL COLUMNS FROM `users` ]

何らかの理由で、初期のデフォルト データベース構成を使用します。

私の質問: Module Auth のデフォルト データベースを設定するにはどうすればよいですか?

4

2 に答える 2

1

これを少し追ってみましょう。

あなたは実際にAuthだけでなくORM / Authを使用しています。ORM/Auth の ORM は、指定されていない場合、既定のデータベースを使用するように構成されています。ORM.php ファイルで $_db_group をオーバーロードすることで、このオプションをオーバーライドできます。

Kohana のカスケード ファイルシステムを使用して、それを上書きしましょう。新しいファイルを作成します: classes/auth.php 。次のコードを挿入します。

<?php
class ORM extends Kohana_ORM {
    $_db_group = Kohana::$config->load('database')->get('customer_1');
}

準備完了。

于 2012-04-05T15:55:59.713 に答える