8

CakePHP のAuthComponentは、ユーザー名とパスワードを含む Users テーブルがあることを前提としています。デフォルトのテーブル名をユーザーからアカウントにオーバーライドする方法を見つけたいと思います。

背景情報:

私がデータベースを設計した方法は、Users テーブルと Accounts テーブルを持つことです。

アカウント:

  • ID

  • ユーザーID

  • ユーザー名

  • パスワード

  • 認証サービス (たとえば、自分のサイト、Facebook、Google、OpenIDなど)

ユーザー:

  • ユーザーのすべての個人情報 (年齢、性別など) を持っているだけです。

その理由としては、

  1. 各ユーザーは、ログインできる複数のアカウントを持つことができるため、1 つにロックされることはありません。
  2. サードパーティのサービスをアカウントに接続して、さらに素晴らしいものにすることができます

さて、問題に戻ります....

CakePHP にはデフォルトのフィールド名の変更に関するドキュメントがありますが、デフォルトのテーブル名の変更については何も見つかりませんが、本質的には似ていると思います...

デフォルトのフィールド名を変更する例:

function beforeFilter() {
    $this->Auth->fields = array(
            'username' => 'username',
            'password' => 'secretword'
        );
 }

これを達成する方法はありますか、それとも CakePHP の規則に従ってテーブルを再構築し、それでも同じことを達成する必要がありますか?

4

2 に答える 2

20

app_controller.php で:

function beforeFilter() {
    $this->Auth->userModel = 'Account';
}
于 2009-01-13T04:43:55.833 に答える