CakePHP 2.0에는 구독자 모델과 SubscriberGroup 모델이 있습니다. 이들은 서로 HABTM으로 연결되어 있습니다.CakePHP : HABTM 조인 테이블에서 연관 검색
SubscriberGroup 편집 작업에서이 그룹의 가입자 목록을 얻고 싶습니다.이 그룹은 HABTM 관계가 정의 될 때 문제가되지 않습니다. 그러나 연관 테이블 인 subscriber_groups_subscribers에는 author_id 필드가 있습니다.이 필드는 다른 테이블에 대한 외래 키입니다 (users).
$ this-> SubscriberGroups-> read()를 수행 할 때 그룹과 구독자뿐만 아니라 연결을 만든 사용자에 관한 사용자 테이블의 세부 정보도 가져 오려고합니다. 사용자 지정 쿼리를 정의하지 않고 할 수있는 방법은
public $hasAndBelongsToMany = array(
'Subscriber' => array(
'className' => 'Subscriber',
'joinTable' => 'subscriber_groups_subscribers',
'foreignKey' => 'subscriber_group_id',
'associationForeignKey' => 'subscriber_id',
'fields' => 'id,first_name,last_name,email_address,last_error',
'unique' => 'keepExisting'
)
);
거기에 다음과 같이
HABTM 관계는 정의?
$options = array(
'contain' => array(
'Subscriber', 'Author'
)
);
$data = $this->SubscriberGroup->find('all', $options);
을 그리고 SubscriberGroup 모델에 함유 성 동작을 설정하는 것을 잊지 마세요 :
당신은'belongsTo' (또는'hasOne') relat '구독자'와'저자 '사이의 이온화? 그렇다면'$ this-> SubscriberGroup-> recursive'를'3'으로 설정하십시오. – Holt
홀트 - 나는 가입자가 아니라 관계의 저자를 찾고 있습니다. – user884248
죄송합니다. 질문에 한 줄을 건너 뛰었습니다 ... CakePHP에 사용자 정의 필드와의 HABTM 관계에 "깨끗한"것이 있는지 확실하지 않습니다. 나는 HABTM 테이블을위한 모델을 만들고이 모델과'Author','Subscriber' 및'SubscriberGroup' 모델 사이에'belongsTo'와'hasOne' 관계를 추가 할 것입니다. – Holt