我做了很多研究,遵循了许多不同的例子,但仍然无法让它正常运行。
所以这里是注册控制器动作的一部分:
if(!empty($this->request->data)){
$this->request->data['Company']['start_date']= date("Y-m-d");
unset($this->Company->User->validate['company_id']);
if($this->Company->saveAssociated($this->request->data)){
$user = $this->request->data['User'];
$data['User']['password'] = $user[0]['password'];
$data['User']['email'] = $user[0]['email'];
if($this->Auth->login($data)){
$this->redirect($this->Auth->redirect(array('controller'=>'customers', 'action'=>'index')));
}...
因此用户被保存并创建了一个新的用户电子邮件和密码数组。然后将其传递给$this->Auth->login。登录似乎通过了,但重定向到客户控制器时出现以下错误:
Notice (8): Undefined index: role [APP\Controller\CustomersController.php, line 32]
Notice (8): Undefined index: role [APP\Controller\CustomersController.php, line 36]
即使角色字段在用户创建时自动设置为经理。下面是 CustomerController 的样子:
公共功能 isAuthorized($user){
if($user['role'] == 'manager'){
return true;}
if (in_array($this->action, array('add', 'edit', 'index', 'view', 'delete', 'users'))){
if($user['role'] != 'manager'){
return false;
}}return true;}
很感谢任何形式的帮助。