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


cakeHow to access params in components in cake php?

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

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

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

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

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

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

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

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

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

也看看这个答案。

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