2014-02-10 2 views
1

저는 Yii를 처음 사용합니다.Yii에 다중 관계 정의하기

3 개의 테이블이 있습니다. 연구는 많은 항목을 가지고 있으며, 연구는 하나의 프로그램에 속하는 :

항목, 연구프로그램

관계이다.

모든 항목을 포함하는 데이터 브라우저 (CGridView)를 표시하고 해당 항목이 속한 프로그램을 표시하도록 항목의 모델을 정의하고자합니다.

  • 항목이 study_id있다 ->

  • 프로그램은 이름 속성이, 프로그램 참조 -이 연구에 참조>을,

  • 연구 을 program_id있다.

항목이 속한 프로그램 이름을 표시하고 싶습니다. 나는 하나의 관계 Entry를 정의하는 방법을 알고 있지만 현재의 문제는 완전히 단서가 없다. 이것에 대한 나의 관계는 무엇이되어야 하는가? 그리고 어떤 속성/s?

public function relations(){ 
    return array(
    ... 
    'study' => array(self::BELONGS_TO, 'Study', 'study_id'), 
    ); 

} 

또한이 관계가 있다면 어떻게 dataprovider에 대한 정렬을 정의 할 수 있습니까?

'sort'=>array(
    'attributes'=>array(
     '*' 
    ) 
) 

감사합니다.

답변

2

모델 클래스에서이 두 관계를 정의합니다.

'study' => array(self::HAS_MANY, 'Entry','study_id'), 
'program'=>array(self::BELONGS_TO,'Program',array('program_id'=>'id'),'through'=>'study'), 

지금보기 파일에, 당신은 당신의 특정 항목의 프로그램의 목록이 표시됩니다 var_dump($data->program) 물품.

내 링크에서 도움을받을 수도 있습니다.

How to get data from Relations with joins in yii

은 당신을 도울 것입니다 바랍니다.

감사합니다.

+0

감사합니다. 기쁜 대답 – muffin