我有一个出现在所有页面(布局/default.ctp)上的登录表单,我想让用户留在他登录的页面上。例如,如果他正在查看另一个用户的个人资料,我想在登录后将他保留在那里,而不是将他重定向到 $this->Auth->loginRedirect 操作。另外,关于我的应用程序的另一件事是,我没有“仅经过身份验证的访问”页面,每个人都可以访问每个页面,但是如果您已登录,您将获得其他功能。
我怎样才能做到这一点?
我有一个出现在所有页面(布局/default.ctp)上的登录表单,我想让用户留在他登录的页面上。例如,如果他正在查看另一个用户的个人资料,我想在登录后将他保留在那里,而不是将他重定向到 $this->Auth->loginRedirect 操作。另外,关于我的应用程序的另一件事是,我没有“仅经过身份验证的访问”页面,每个人都可以访问每个页面,但是如果您已登录,您将获得其他功能。
我怎样才能做到这一点?
我解决了这个问题,写了这段代码:
用户控制器:
if($this->Auth->Login()){
$this->redirect($this->Auth->redirect());
}
在 AppController 中:
public function beforeFilter(){
if($this->here != '/cmap/users/login'){
$this->Session->write('Auth.redirect', $this->here);
}
}
你有没有试过$this->referer()
。
登录功能
function login()
{
if ($this->Auth->user())
{
$this->redirect($this->referer());
exit();
}
}