다음과 같이 될 것입니다 수행하는 "케이크"방법 :
$this->Classroom->find('first',array(
'conditions'=>array(
'Classroom.id'=>$classrom_id_var
),
'recursive'=>1
)
이 기본 recursive 플래그를 사용하는 더 나은 방법이 있어야한다. 당신이 할 수 있도록 내가보기 엔, 유사한 내장 Containable behavoir 추천 할 것입니다 다음
array(
[Classroom] => array(
...teacher data...
),
[Teacher] => array(
[0] => array(
[id] => 4
....
),
[1] => array(...teacher 2 data...),
[2] => array(...teacher 3 data...),
)
)
당신은 할 수 그럼 그냥 :
$classdata = $this->Classroom->find('first',array(
'conditions'=>array(
'Classroom.id'=>$classrom_id_var
),
'contain'=>array('Classroom')
)
을 다음 중 하나를 당신에게 다음과 같은 배열을 얻을 것이다 Teacher 배열을 실행하고 해당 교사가 해당 배열에 있는지 확인하십시오. 이 후자의 작업에 대한
, 당신은 사용할 수있는 유용한 내장
Set 유틸리티 - 다음과 같이 뭔가를 할 수 :
$teacherlist = Set::extract($classdata,'/Classroom/id');
if(in_array($teacherlist, $id)) {
//They're okay
} else {
//Return an error
}
를 정말 모델 함수를 작성하려는 경우에 보면, find에서 join 옵션을 사용하면 bindModel보다 훨씬 쉽습니다. 또는 Habtamable behavior을 살펴보십시오.
는 HABTM 관계가-belongsTo를 hasMany의 관계 단지 추상화