임 컨트롤러에서 일부 변수를 설정 한 다음 내 모델 및 해당 모델의 동작에 액세스 할 수 있는지 궁금합니다.cakePHP의 변수 전달
아래에서 시도했지만 행운은 없습니다. 컨트롤러에 : $ this-> Model-> data [ 'foo'] = "bar"; 행동에있어서 : $ Model-> data [ 'foo'];
도움에 감사드립니다!
임 컨트롤러에서 일부 변수를 설정 한 다음 내 모델 및 해당 모델의 동작에 액세스 할 수 있는지 궁금합니다.cakePHP의 변수 전달
아래에서 시도했지만 행운은 없습니다. 컨트롤러에 : $ this-> Model-> data [ 'foo'] = "bar"; 행동에있어서 : $ Model-> data [ 'foo'];
도움에 감사드립니다!
데이터를 전달하는 한 가지 방법은 모델의 사용자 정의 함수를 사용하는 것입니다. 예를 들어
, 모델에서
$flag = $this->Model->checkIntegrity($this->data);
,
function checkIntegrity($data) {
...
}
사용자가 데이터에 직접 변경을하고자하는 경우에도 참고 자료로 그들을에 전달할 수
:
function checkIntegrity(&$data) {
...
}
을
정말 고마워요! – Jason
전달하려는 데이터의 종류에 따라 다릅니다. 모델/동작 설정의 경우 클래스 속성을 사용할 수 있습니다. 예 : 모델이나 행동에서
: 컨트롤러에서
public $custom_variable = null; // or other default value
:
$this->Model->custom_variable = 'new value';
또는
그것은 당신이 사이에 무엇에 따라 달라집니다$this->Behavior->custom_variable = 'new value';
감사합니다. 다행히도 지금은 하나 이상의 옵션이 있습니다! :) – Jason
. 'Model :: $ data'는 Behaviour가 호출되기 전에 겹쳐 쓰여진 변수입니다. 당신이하려는 일에 대해 자세히 설명해 주시겠습니까? – deceze