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

Jus*_*ohn 1 php cakephp cakephp-1.2 cakephp-2.1

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

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

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

Jel*_*mer 6

看一下lib中的一些组件.我知道Cake 2.x,而不是1.2.x. 更新:作为评论中提到的标记,这对1.x版本的作用相同.

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

public function startup(Controller $controller) {
     //Rest of code goes here
}
Run Code Online (Sandbox Code Playgroud)

如您所见,它们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;
Run Code Online (Sandbox Code Playgroud)

看看这个答案也是如此.