我的网站有一个针对员工的公共部分和针对管理员的后端。它使用2种不同的模型,员工和管理员。
我想使用Auth组件进行员工登录和管理员登录。我知道如何设置Auth组件以使用默认用户模型以外的模型。但我可以让auth组件使用2个模型,一个用于员工身份验证,另一个用于管理员身份验证?我正在使用admin_前缀路由。
这可能吗?我搜索了但是我能找到的是关于如何使Auth组件使用除用户模型以外的模型的教程。
请指教!
修改
我使用单独的登录表单进行管理员登录和员工登录。两者都使用员工控制器,但是单独的操作。
答案 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............*/
}
}
}