2013-09-04 3 views
1

나는 내가 좋아하는 싶은 내 첫 번째 쿼리의 경우 두 개의 서로 다른 쿼리패스 외래 키는 2.3.9

에 대한 두 개의 서로 다른 외부 키를 사용하려면 특정 쿼리 CakePHP의 모델합니다

내 모델 코드는

같다 :

public $belongsTo = array(
    'Emailformatstype' => array(
     'className' => 'Emailformatstype', 
     'foreignKey' => 'id' 
    ) 
); 

지금 내 두 번째 쿼리에 대해 내가 좋아합니다

$this->Model->foreignKey= 'My_foreignKey'; 
:
public $belongsTo = array(
    'Emailformatstype' => array(
     'className' => 'Emailformatstype', 
     'foreignKey' => 'New_id' 
    ) 
); 

그래서 제 질문은 어떤 기술이 그래서 우리가

$this->Model->recursive = 0; 

이 같은 내가 좋아 원하는 재귀 제공하기 때문에 같은 특정 쿼리에 대해 컨트롤러에서

뭔가를 외래 키를 전달할 수가 있습니다

답변

1

연관성 속성에 액세스하기 만하면 :

$this->Model->belongsTo['YourAssoc']['foreignKey'] = 'my_foreignKey'; 

몇 가지 모범 사례 : Emailformatstype은 잘못된 이름이며 EmailFormatType이어야합니다. 국제 대회와 더 잘 읽고 일치합니다. 관습에 따라 조인 테이블을 만들 수있는 이전의 형식 (형식)을 확인하십시오.

+0

답변을 주셔서 감사합니다. 모델 이름에 대해 방금 더미 문구를 사용했습니다. –

+0

이 경우 모델에서 연관을 지정할 필요가 없지만 어떤 연관을 적용할지 지정하는 경우 어떻게해야합니까? 한 번 컨트롤러 또는 모델에서 지정하는 하나? –

+0

OOP 기본 사항 : 인스턴스입니다. 모델의 새 인스턴스를 얻지 못한다면 모델을 만들거나 모델을 설정하기 전에 모델을 모델로 설정해야합니다 (예 : changeAssoNameFK()가 컨트롤러보다 낫습니다). 변경된 FK가 더 이상 필요하지 않을 때 다시 돌아옵니다. – burzum