CakePHP的 AuthComponent 假设您有一个包含用户名和密码的Users表。我想找到一种方法来覆盖用户到帐户的默认表名。
背景资料:
我设计数据库的方法是拥有一个Users表和一个Accounts表。
帐户:
ID
USER_ID
用户名
密码
身份验证服务(例如,我的网站,Facebook,Google,OpenID等)
用户:
原因是
现在回到问题....
CakePHP有关于更改默认字段名称的文档,但我找不到有关更改默认表名的任何内容,但假设它本质上类似...
更改默认字段名称的示例:
function beforeFilter() {
$this->Auth->fields = array(
'username' => 'username',
'password' => 'secretword'
);
}
有没有办法实现这一目标,还是应该按照CakePHP惯例对表格进行重组并仍然完成同样的事情?
答案 0 :(得分:20)
在app_controller.php中:
function beforeFilter() {
$this->Auth->userModel = 'Account';
}
答案 1 :(得分:0)
下面的代码在我的情况下有助于接受电子邮件字段中的用户名,您还可以在选项中定义密码哈希。
$this->Auth->authenticate = array(
'Basic' => array('userModel' => 'Account'),
'Form' => array(
'fields' => array('username' => 'email'),
'userModel' => 'Account'
)
);