2011-09-02 5 views
0

저는 cakePHP에 익숙하지 않아 모든 모델을 올바르게 연결하는 데 문제가 있습니다. CakePHP 모델 관계 재귀를 사용하지 않고

은 CakePHP의 내 모델의 레이아웃입니다 :

클래스 belongsTo를 위치
클래스 belongsTo를하는 ClassType
클래스 hasMany의 ScheduledClass
ScheduledClass belongsTo를 강사

내 문제는 내가 사용하는 경우 :

$this->Class->find('all') 

데이터는 Class, Location, Clas에서만 가져옵니다. sType 및 ScheduledClass 모델. 강사 모델에서 데이터를 얻지 못했습니다.

재귀 값을 '2'로 설정하고 강사 모델에서 데이터를 가져올 수 있지만 결과적으로 "ScheduledClass.instructor_id = Instructor"의 조인 대신 거대한 양의 쿼리 (모든 행에 하나씩)가 발생합니다. 신분증". (나는 모두 함유 성 사용하여 시도 및 올바른 데이터를 얻기 위해 합류 한

SELECT 
... 
... 
FROM classes as Class 
INNER JOIN locations as Location on Class.location_id = Location.id 
INNER JOIN class_types as ClassType on Class.class_type_id = ClassType.id 
INNER JOIN scheduled_classes as ScheduledClass on ScheduledClass.class_id = Class.id 
INNER JOIN instructors as Instructor on ScheduledClass.instructor_id = Instructor.id 

하지만 나도 작동시킬 수 없습니다 :

내가 acheive 기대되었다 뭔가처럼 아마도 내 오해 때문에 그들의 용도).

미리 감사드립니다.

답변

0

use 찾기를 원하는 방식으로 원하는 데이터를 반입하고 가져 오는 방법을 포함하고 설정합니다. 모델

var $actsAs = array('Containable'); 

에서

당신이 당신의 모델/데이터베이스 관계를 잘 당신은 당신도 원하는 정확한 데이터를 뽑을 수 설정 한 경우 컨트롤러에이

$this->data = $this->User->find('first', array('conditions' => array('User.id' => $this->Auth->user('id')), 'contain' => array('City', 'Region', 'Country', 'UserOccupations', 'UserGroup'))); 

같은 뭔가를 할 수

원하는 열을 선택하십시오.