2012-01-16 187 views
2

如何将CakePHP组件中的函数中声明的变量传递给控制器​​?我似乎无法解决这个问题。将组件变量传递给cakePHP中的控制器

+0

你有一些代码可以发布吗? – dm03514 2012-01-16 18:34:49

+0

没有解释什么是必需的,你有什么,你想要做什么......坏的问题。坏坏坏... – Albert 2013-02-06 07:41:45

回答

5

您可以通过多种方式来实现。基本上,你刚才叫你从控制器和返回值所需要的组件的功能:

//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); 
} 
+0

非常感谢你 – user765368 2012-01-16 21:59:25

+0

确保加载组件:* public $ components = array('MyComponent'); *否则* $ this-> Controller-> set('data',$ data) ; * wiil不工作 – 2015-12-25 05:56:23

+0

有没有更新如何在cakephp 3.x中做到这一点 – Battousai 2016-06-22 04:44:31

相关问题