2011-10-30 3 views
3

어떻게 테이블 자체를 사용하여 그 협회? 내가 CakePHP를 사용하고 테이블 절입니다 :테이블 자체를 사용하는 방법은?

create table SECTIONS 
(
    SECTIONID   int(11) not null auto_increment, 
    TITLE    char not null, 
    CONTROLID   int(11) not null, 
    SECTIONPARENTID  int(11), 
    primary key (SECTIONID) 
) 

이 테이블 자체와 관련이 있고 내가 에 속하는 사용하는 것은 많은 연관을 가지고 있으며, 내 모델은 다음과 같습니다

class Section extends AppModel { 
    var $name = 'Section'; 
    var $primaryKey = 'SECTIONID'; 
    var $displayField = 'TITLE'; 
} 

은 내가 를 사용에 속하며 에는 두 테이블에 많은 연관이 있습니다. 하지만이 예제에서는 사용할 수 없습니다. 도움을 주신 덕분에 .

답변

6

자기 참조 모델은 속임수를 알면 케이크에서 간단하지만 케이크 명명 규칙을 사용하지 않으면 어떤 호의도 얻지 못합니다. 난 당신이 얻을 것이다 당신은 쿼리와 같은 $ this-> 섹션 -> ('첫 번째') 찾기를 실행하면

Class Section extends AppModel { 

    var $belongsTo = array(
    'Parent'=>array(
     'className'=>'Section', 
     'foreignKey'=>'SECTIONPARENTID' 
    ) 
); 

    var $hasMany = array(
    'Children'=>array(
     'className'=>'Section', 
     'foreignKey'=>'SECTIONPARENTID' 
    ) 
); 

} 

:-) 당신의 통제에서의 데이터 소스를 사용하는 가정합니다 반환 된 배열은 다음과 같습니다 :

section => array(
    SECTIONID, 
    ... 
    'Parent'=>array(
    'SECTIONID', 
    .... 
), 
    'Children'=>array(
    [0] => array(
     [SECTIONID] 
    ), 
    [1] => array(
     [SECTIONID] 
    ), 
    ... 
) 
) 
관련 문제