如何为CakePHP的AuthComponent使用"Users"以外的表?

8 authentication cakephp login cakephp-1.3

CakePHP的AuthComponent假设您有一个包含用户名和密码的Users表.我想找到一种方法来覆盖用户到帐户的默认表名.

背景资料:

我设计数据库的方法是拥有一个Users表和一个Accounts表.

账户:

  • ID

  • 用户身份

  • 用户名

  • 密码

  • 身份验证服务(例如,我的网站,Facebook,Google,OpenID等)

用户:

  • 只需拥有用户的所有个人信息(年龄,性别等)

原因是这样的

  1. 每个用户可以拥有多个可以登录的帐户,因此他们不会被锁定
  2. 我可以将第三方服务连接到帐户以获得更多功能

现在回到问题....

CakePHP有关于更改默认字段名称的文档,但我在更改默认表名时找不到任何内容,但假设它本质上类似于...

更改默认字段名称的示例:

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

有没有办法实现这一点,还是应该按照CakePHP惯例对表进行重组并仍然完成同样的事情?

小智 20

在app_controller.php中:

function beforeFilter() {
    $this->Auth->userModel = 'Account';
}
Run Code Online (Sandbox Code Playgroud)