2013-04-03 7 views
-1

이 문제는 내 머리를 수십 일간 부딪 히고 있습니다. 내 부서 모델에서 find ('all')를 수행하면 관련 데이터가 반입되지 않습니다. 여기 내 부서 모델입니다 :cakePHP 관련 데이터가 검색되지 않았습니다.

<?php 
App::uses('AppModel', 'Model'); 

class Department extends AppModel { 

public $displayField = 'name'; 
//The Associations below have been created with all possible keys, those that are not needed can be removed 

public $belongsTo = array(///check 
    'District' => array(
     'className' => 'District', 
     'foreignKey' => 'district_id' 
    ) 
); 
public $hasMany = array(
    'Group' => array(
     'className' => 'Group', 
     'foreignKey' => 'department_id' ///check 
    ), 
    'Request'=>array(
     'className' => 'Request', 
     'foreignKey' => 'department_id', 
    ), 
    'DepartmentPosition'=>array(
     'className'=>'DepartmentPosition', 
     'foreignKey'=>'department_id', 
     'dependent'=>true 
    ), 
); 

}

나는,이 데이터베이스의 모든 부서에서 모든 필드를 반환,하지만이 모든 데이터를 연관 ('모든')에서 찾을 수 있습니까합니다. 부서 컨트롤러에서 : 나는 하나의 관련 부서를 포함, 다른 모델의 어떠한 문제가없는 및 ​​관련 데이터를 반환라서 모델에 문제가있는 것처럼

$departments = $this->Department->find('all'); 
$this->set(compact('departments')); 

느낀다. 예를 들어, 교육구와 관련된 모든 부서를 찾을 수 있습니다.

미리 감사드립니다.

+0

당신은 발견의 모든 매개 변수를 게시 할 수 있습니다(). –

+0

예, 현재 아무 것도 없습니다. 나는이 시점에서 find ('all')를 수행하고 디버그 ($ departments)를 수행하는 뷰에서 수행한다. 고마워 @Danial – Todd

답변

1

잘못된 모델 파일 이름은 읽지 않는 모델 파일의 가장 일반적인 원인이며 테이블에 대한 AppModel 인스턴스를 사용하는 케이크입니다. 모델의 파일 ​​이름을 확인하십시오. Department.php인지 확인하십시오. 귀하의 컨트롤러에서 debug(get_class($this->Department));은 "AppModel"이 아니라 "Department"를 반환해야합니다.

모델 파일이 제대로로드되었다고 가정하면 여전히 모델의 $recursive 속성이 아마도 AppModel에서 -1로 설정되어있을 가능성이 높습니다.

+0

좋은 대답. 디버그 트릭을 주셔서 감사합니다. 매우 똑똑합니다. – Todd

+0

명명했습니다. – Todd

0

당신은 다음을 사용한다 :

$this->Department->recursive = 1; 
$departments = $this->Department->find('all'); 
$this->set(compact('departments')); 
+0

질문에서 말했듯이, 그것은 컨트롤러 코드의 문제가 아닙니다. 내가 컨트롤러에 입력 한 것과 관계없이 관련 데이터가 다시 표시되지 않습니다. – Todd

관련 문제