1

访问$this->params$this->data组件。

class LoginComponent extends Object {
   /*  */
   public function login() {   
      pr($this->params);
      pr($this->data);
   }
}

我在 cake v1.2中使用它。我想知道v1.2v2.1中的解决方案。请给我一个建议。

4

2 回答 2

6

看看你的库中的一些组件。我知道这适用于 Cake 2.x,而不是 1.2.x。更新:正如评论中提到的标记,这对于 1.x 版本是一样的。

例如,当我打开时,SecurityComponent我会发现一个名为startup(). 该方法将自身定义为:

public function startup(Controller $controller) {
     //Rest of code goes here
}

如您所见,它们import是 Controller 对象。您现在可以访问 Controlelr 方法和变量。因为您可能知道:$this调用时$this->data指的是Controller.

因此,如果我将其存储$controller在组件中调用的受保护变量$_Controller中,我可以轻松访问数据和参数,如下所示:

# CakePhp 2.x
$this->_Controller->request->data;
$this->_Controller->request->params;

# CakePhp 1.x
$this->_Controller->data;
$this->_Controller->params;

也看看这个答案

于 2013-01-28T10:23:00.550 回答
0

通过路由器检查: Router::getParams();

于 2013-01-28T10:25:07.573 回答