2010-11-27 4 views
0

임 컨트롤러에서 일부 변수를 설정 한 다음 내 모델 및 해당 모델의 동작에 액세스 할 수 있는지 궁금합니다.cakePHP의 변수 전달

아래에서 시도했지만 행운은 없습니다. 컨트롤러에 : $ this-> Model-> data [ 'foo'] = "bar"; 행동에있어서 : $ Model-> data [ 'foo'];

도움에 감사드립니다!

+0

. 'Model :: $ data'는 Behaviour가 호출되기 전에 겹쳐 쓰여진 변수입니다. 당신이하려는 일에 대해 자세히 설명해 주시겠습니까? – deceze

답변

1

데이터를 전달하는 한 가지 방법은 모델의 사용자 정의 함수를 사용하는 것입니다. 예를 들어

, 모델에서

$flag = $this->Model->checkIntegrity($this->data); 

,

function checkIntegrity($data) { 
    ... 
} 
사용자가 데이터에 직접 변경을하고자하는 경우에도 참고 자료로 그들을에 전달할 수

:

function checkIntegrity(&$data) { 
    ... 
} 
+0

정말 고마워요! – Jason

0

전달하려는 데이터의 종류에 따라 다릅니다. 모델/동작 설정의 경우 클래스 속성을 사용할 수 있습니다. 예 : 모델이나 행동에서

: 컨트롤러에서

public $custom_variable = null; // or other default value 

:

$this->Model->custom_variable = 'new value'; 

또는

그것은 당신이 사이에 무엇에 따라 달라집니다
$this->Behavior->custom_variable = 'new value'; 
+0

감사합니다. 다행히도 지금은 하나 이상의 옵션이 있습니다! :) – Jason