在我的 UsersController 的 beforeFilter 中,我有一些类似于您的登录名的内容。
然后我将 afterLogin 函数设置为重定向
$this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'afterLogin');
$this->Auth->loginRedirectTrue = array('controller' => 'users', 'action' => 'index');
$this->Auth->logoutRedirect = array('controller' => 'pages', 'action' => 'display');
登录功能进行一些检查,然后重定向到
if ($this->Auth->login()){
// code here
$this->redirect($this->Auth->redirect());
}
和 afterLogin 这样的功能
function afterLogin(){
$session = $this->Session->read('Auth');
$user_id = $session['User']['id'];
// change this to find only the fields you need and then override the Auth.User...
$user = $this->User->findById($user_id);
if (!empty($user)){
$this->Session->write('Auth.UserProfile', $user['UserProfile']);
}
$this->redirect($this->Auth->loginRedirectTrue);
}
您应该更改 findById 以满足您的需要,然后覆盖会话中的 Auth.User 字段。
祝你好运!