0

在我的 CakePHP 应用程序中,当我使用另一个控制器的类时,我得到 Session read function 错误。

example.com/app/getList运作良好
example.com/seconds/parseList运作良好
example.com/first/index给出了这个错误:

Fatal error: Call to a member function read() on a non-object in
/example.com/app/Controller/AppController.php on line 468

第 468 行是这样的:$list=$this->Session->read('myList');

我怎样才能解决这个问题 ?

class FirstController extends AppController {
    public function index () {
        $Seconds = new SecondsController();
        $Seconds->parseList();
    }
}

class SecondsController extends AppController {
    public $helpers = array('Html', 'Session');

    public function parseList () {
        $output = $this->getList();
        return output;
    }
}

class AppController extends Controller {
    public $uses = array('App', 'Mydata');
    var $components    = array('Session');
    public $helpers = array('Session','Html','Cache');

    public function getList () {
        $list=$this->Session->read('myList');
        return $list;
    }
}

编辑:我应该提到example.com/app/getList效果很好。当我独立运行此操作时,它不会给出会话错误。

4

2 回答 2

4

您必须constructClasses()在手动创建控制器实例后调用该方法:

$Seconds = new SecondsController();
$Seconds->constructClasses();
于 2012-07-24T13:46:57.630 回答
0

你把var $components = array('Session');你的AppController放进去了吗?

于 2012-07-24T12:54:18.887 回答