Php 如何重定向到登录页面是会话体验

Php 如何重定向到登录页面是会话体验,php,cakephp,Php,Cakephp,我是cakephp新手,我使用auth登录我的实用程序…我想重定向到登录页面,以防我所有操作的会话体验…我编写了如下代码\ public function index() { if(!$this->Session->read('username')) $this->logout(); $this->set('users', $this->paginate()); } 但是对于我所有的操作,比如add(

我是cakephp新手,我使用auth登录我的实用程序…我想重定向到登录页面,以防我所有操作的会话体验…我编写了如下代码\

public function index() {        
    if(!$this->Session->read('username'))
        $this->logout();
    $this->set('users', $this->paginate());        
}
但是对于我所有的操作,比如add(),edit()…每次我需要检查会话变量时…如果我像这样在_构造中写入条件

public function __construct()
{
    if(!$this->Session->read('username'))
        $this->logout();
}
这给了我错误的感觉

Error: Call to a member function read() on a non-object 
有人能建议我试试吗

if (!$this->Session->valid()) {
  $this->logout();
}

看起来您没有包含SessionComponent

尝试添加

$components=array('Session')

首先在
AppController


然后查看文档以了解更多信息:

使用
AuthComponent
如果会话过期,用户尝试访问受保护的页面,他将自动重定向到登录页面。

否…它给了我“错误:调用非对象上的成员函数valid()”会话如何->检查()?相同的错误:在非objecttry上调用成员函数check()。您可以发布完整的控制器代码吗?还有来自AppController的代码?也试着从食谱中重建这两个示例。和。如果您必须在每个控制器的每个操作中检查您的会话,那么您做错了什么。Cake已经在AuthComponent中提供了此功能。