cakephp auth组件,使用两个模型

时间:2012-08-06 19:28:59

标签: cakephp

我的网站有一个针对员工的公共部分和针对管理员的后端。它使用2种不同的模型,员工和管理员。

我想使用Auth组件进行员工登录和管理员登录。我知道如何设置Auth组件以使用默认用户模型以外的模型。但我可以让auth组件使用2个模型,一个用于员工身份验证,另一个用于管理员身份验证?我正在使用admin_前缀路由。

这可能吗?我搜索了但是我能找到的是关于如何使Auth组件使用除用户模型以外的模型的教程。

请指教!

修改

我使用单独的登录表单进行管理员登录和员工登录。两者都使用员工控制器,但是单独的操作。

2 个答案:

答案 0 :(得分:0)

http://api.cakephp.org/class/auth-component

检查属性身份验证,你的答案就在那里!

以及更多: http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html。 看看身份验证处理程序!

以下是直接来自蛋糕页

的示例
<?php
// Basic setup
$this->Auth->authenticate = array('Form');

// Pass settings in
$this->Auth->authenticate = array(
'Form' => array('userModel' => 'Member'),
'Basic' => array('userModel' => 'Member')
);

只需添加其他内容而不是Form和Basic,并关联好模型

答案 1 :(得分:0)

考虑到您正在为员工和管理员使用两个单选按钮。然后,您可以将以下代码用于登录方法。

 function login()
{       
    if ($this->request->is('post'))
    {
        $logged_in = false;
        $login_type = $this->request->data['User']['login_type']
        if ($login_type == 'Admin')
        {
             $this->Auth->authenticate = array('Form' => array('userModel' => 'Admin' ));       
        }
        else //if ($login_type == 'Employee')
        {
             $this->Auth->authenticate = array('Form' => array('userModel' => 'Employee' ));             
        }
        $this->Auth->constructAuthenticate();
        if ($this->Auth->login())
        {  
             $logged_in = true;                 
                     /*.... Do what you want............*/
        }
    }
}