2011-06-14 152 views
-1

我正在编辑某人在CakePHP中制作的网站,但我没有任何Cake的经验。我正在阅读手册,但发现很难理解,所以我想在这里发布一个问题,看看我能否得到任何快速答案。CakePHP登录系统

我认为这个代码被用于显示登录框,你可以只用用户名test,密码123123

var $components = array("Auth", "Acl"); 

function beforeFilter(){ 
    $this->Security->loginOptions = array(
    'type' => 'basic', 
    'realm' => 'Authenticate Emergency Response Center' 
); 
$this->Security->loginCredentials = array(
    'test' => '123123' 
); 
$this->Security->requireLogin(); 
    $this->_bindToSite(); 
    parent::beforeFilter(); 
} 

我要在日志中框显示仍登录,但我想自动使用来自数据库的信息填充loginCredentials数组。我有一个名为'operators'的表,其中包含'user_id'和'password'字段。

有人能告诉我如何改变上面的代码以允许存储在操作员表中的任何用户名/密码登录吗?

感谢所有帮助

回答

1

创建数组从数据库中,并设置$this->Security->loginCredentials等于你的阵列。

1

你可以把大部分的努力留给CakePHP的Auth组件,但是如果你想使用默认的'User'以外的模型,你只需要在beforeFilter()中设置它。在app\目录中,最好的做法可能是app_controller.php

function beforeFilter(){ 
    $this->Auth->userModel = 'Operator'; 
    $this->Auth->fields = array(
     'username' => 'user_id', 
     'password' => 'password' 
    ); 
);