2014-06-08 4 views
0

Cakephp 2.3을 사용하고 있습니다. 제 모델에는 복제본을 확인하는 기능이 있습니다. 중복 수를 확인하여 사용자에게보고하고 싶습니다. 그러나 함수에서 설정 한 변수는 뷰에서 나와 사용할 수없는 것 같습니다.모델 내부 함수에서 변수를 디버그하는 방법

모델 : 클래스 학생 AppModel을 확장 {

Notice (8): Undefined variable: results 

내가 함수에서 설정 한 변수를 표시하는 방법에 대해 조언을 주시기 바랍니다에

뷰에서
public $validate = array(
'promotion_code' => array(
'rule' => array('limitDuplicates', 1), 
'message' => "there are x duplicates") 
); 

public function limitDuplicates($check, $limit) { 
$existing_promo_count = $this->find('count', array(
'conditions' => $check, 
'recursive' => -1 
)); 
$this->set('results', $existing_promo_count); 
return $existing_promo_count < $limit; 
} 
} 

debug("duplicate count is ". $results); 

결과 보기에서 오류 메시지에 사용할 수있는 모델에서.

감사합니다.

+0

질문에있는 코드는 모델 인스턴스에서 'Model :: set'을 호출합니다. 이는 뷰에 값을 전달하지 않습니다. 'Controller :: set'은 그렇게합니다. – AD7six

답변

0

귀하의 Controller에서이 기능을 부르시겠습니까?

모델에서 함수가 값을 반환하기 때문에, 당신은 당신의보기가에 액세스 할 수 있도록 $check$limit 다음 set 반환 된 값을 전달하여 컨트롤러에서 함수를 호출해야합니다.

컨트롤러 :

$this->set('result', $this->Model->limitDuplicates($check, $limit));

보기 지금, 결과 변수에 액세스 할 수있는 모델은보기와 컨트롤러가 모두 올바르게 관련 가정한다. 또한 모델에서 set 문을 제거하십시오.

+0

안녕하세요 Chronix3, 감사합니다. 컨트롤러에서 함수를 호출하지 않습니다. 모델 자체의 데이터 유효성 검사에서 호출되고 있습니다. 그러나 나는 사용자에게 중복 횟수를 보여주고 모델의 함수 내에서이 값을 디버그하려고합니다. – vinai

관련 문제