如何访问蛋糕php组件中的参数?

时间:2013-01-28 09:58:46

标签: php cakephp cakephp-2.1 cakephp-1.2

访问组件中的$this->params$this->data

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

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

2 个答案:

答案 0 :(得分:6)

查看lib中的一些组件。我知道Cake 2.x,而不是1.2.x. 更新:mark中提及的comments,对于1.x版本的效果相同。

例如,当我打开SecurityComponent时,我会找到一个名为startup()的函数。此方法将自身定义为:

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

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

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

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

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

同时查看this answer

答案 1 :(得分:0)

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