2012-01-16 3 views
2

cakePHP 구성 요소의 함수에서 선언 된 변수를 컨트롤러에 전달하려면 어떻게해야합니까? 나는 이것을 해결할 수 없다.cakePHP의 컨트롤러에 구성 요소 변수 전달

+0

게시 할 수있는 코드가 있습니까? – dm03514

+0

필요한 것, 가지고있는 것, 무엇을하고 싶은지에 대한 설명이 없습니다 ... 잘못된 질문입니다. 나쁜 bad bad ... – Albert

답변

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

+0

다음과 같이 구성 요소를로드해야합니다 : * public $ components = array ('MyComponent'); * 그렇지 않으면 $ this-> Controller-> set ('data', $ data) ; * wil이 작동하지 않습니다. –

+0

cakephp 3.x에서이 작업을 수행하는 방법에 대한 업데이트가 있습니까? – Battousai

관련 문제