我创建了一个登录功能,一切正常。唯一的问题是我能够访问用户控制器中的会话和用户的视图。
当我尝试访问另一个控制器中的用户会话时,它显示未定义。
以下是我的登录功能代码。
if ($this->Auth->login()) {
$user_data = $this->Auth->user();
$this->loadmodel('GeneralUser');
$result = $this->GeneralUser->find('first',array('conditions' => array('user_id' => $user_data['id'])));
$user_data_complete = array_merge($user_data,$result['GeneralUser']);
$this->Session->write('user',$user_data_complete);
$this->redirect('/dashboard/dashboard/');
$this->Session->setFlash('You are successfully logged in');
return $this->redirect($this->Auth->redirectUrl());
}
用户已成功登录并重定向到仪表板控制器,我无法访问当时的Auth用户的会话。如果我回到users / myaccount,我可以访问会话。
奇怪,为什么我不允许访问其他控制器中的用户会话?
答案 0 :(得分:0)
你不应该使用session_start()或任何GLOBALS,如果你这样做,那么使用PHP框架是没有意义的。始终坚持惯例,避免使用意大利面条代码。
如果要在Controller中读取Session值,则使用Session Component,如果要在视图中读取会话的值,则使用Session Helper。
阅读文档是我最好的建议:http://book.cakephp.org/2.0/en/development/sessions.html
答案 1 :(得分:-1)
它得到修复..我在控制器顶部使用正常的php session_start()导致问题。