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

如何在php中访问组件中的参数?,php,cakephp,cakephp-2.1,cakephp-1.2,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); } } 我在cakev1.2中使用了这个。我想知道v1.2和v2.1中的解决方案。请给我一个建议。看看库中的一些组件。我知道这是2.x蛋糕,不是1.2.x。更新

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

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

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

看看库中的一些组件。我知道这是2.x蛋糕,不是1.2.x。更新:如中所述,这对1.x版本也适用

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

public function startup(Controller $controller) {
     //Rest of code goes here
}
如您所见,它们导入控制器对象。您现在可以访问Controlelr方法和变量。因为您可能知道:调用
$this->data
时,
$this
引用的是
控制器

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

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

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

另外,请看一下。

请看一下库中的一些组件。我知道这是2.x蛋糕,不是1.2.x。更新:如中所述,这对1.x版本也适用

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

public function startup(Controller $controller) {
     //Rest of code goes here
}
如您所见,它们导入控制器对象。您现在可以访问Controlelr方法和变量。因为您可能知道:调用
$this->data
时,
$this
引用的是
控制器

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

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

# CakePhp 1.x
$this->_Controller->data;
$this->_Controller->params;
还可以查看。

按路由器检查: 路由器::getParams()

按路由器检查:
路由器::getParams()

它在1.x中没有任何不同。控制器也会在这些版本中传递。
启动
初始化
函数之间有什么区别?另外,对于2.x,您通常访问响应类。对于写访问,您甚至需要。我不会使用private,但在这里受保护。@Justin它的执行顺序-参见@mark为什么使用response类?因为Cake开发团队构建的每个组件,我看到它们导入控制器对象。你能参考一篇文章或其他东西吗?他们解释了为什么我应该使用
response
类?我将答案更改为受保护变量:)在1.x中没有任何不同。控制器也会在这些版本中传递。
启动
初始化
函数之间有什么区别?另外,对于2.x,您通常访问响应类。对于写访问,您甚至需要。我不会使用private,但在这里受保护。@Justin它的执行顺序-参见@mark为什么使用response类?因为Cake开发团队构建的每个组件,我看到它们导入控制器对象。你能参考一篇文章或其他东西吗?他们解释了为什么我应该使用
response
类?我将答案更改为受保护变量:)您需要将引用传递给控制器..您需要将引用传递给控制器。。