【发布时间】:2012-01-16 18:31:22
【问题描述】:
如何将 cakePHP 组件的函数中声明的变量传递给控制器?我似乎无法解决这个问题。
【问题讨论】:
-
你有一些可以发布的代码吗?
-
没有解释需要什么,你有什么,你希望它做什么......不好的问题。坏坏坏...
标签: cakephp controller components
如何将 cakePHP 组件的函数中声明的变量传递给控制器?我似乎无法解决这个问题。
【问题讨论】:
标签: cakephp controller components
您可以通过多种方式做到这一点。基本上,您只需从控制器调用所需的组件函数并返回值:
//In controller
$alteredData = $this->MyComponent->doSomethingWithData($data);
//In component
//You can also pass $data by reference if you want to alter it directly.
public function doSomethingWithData($data){
//alter data in some way
return $newData;
}
Per the documentation,您还可以从组件直接访问控制器,因此您可以从组件调用控制器方法。
//In component
private $Controller;
public function initialize($controller){
$this->Controller = $controller;
}
public function doSomethingWithData($data){
//alter data in some way
$this->Controller->set('data', $data);
}
【讨论】:
在 cakePHP 3.x 中(可能只有 > 3.5)
// in Component
$this->getController()->set('var', $var);
【讨论】: