2012-01-16 188 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

相關問題