1

我创建了一个组件,在这个组件中我尝试重定向到不同的控制器/动作,但我收到错误:“ Error: Call to undefined method SessionRestComponent::redirect()

我的组件代码:

function iniciaSessao($username=''){
                 $_SESSION['username'] = $username;
                                //  debug(isset($_SESSION['username']));
                                if (isset($_SESSION['username'])) {
                                    $this->redirect(array('controller' => 'registos', 'action' => 'indexUser'));
                                }
            }

任何人都可以帮助我吗?

4

2 回答 2

7

您需要获取控制器 - 例如在 initialize() 或 startup() 然后使用此控制器重定向。

public function startup(Controller $controller) {
    $this->Controller = $controller;
}

public function iniciaSessao() {
    ...
    $this->Controller->redirect($url);
}

并且不要直接使用 $_SESSION,使用 $this->Session 组件作为记录。您只需要将组件添加到您的自定义组件中:

public $components = array('Session');
于 2013-05-22T17:09:58.487 回答
3

对于使用 Cakephp 3 的用户,这里有一个链接。组件内部的位置

function iniciaSessao($username=''){
     ...
     $this->_registry->getController()->redirect($url);
}
于 2016-03-07T00:30:14.350 回答