2014-02-10 64 views
1

我是Yii的新手。在Yii中定義多重關係php

我有3張桌子。

項,研究計劃

關係是:研究有許多條目和研究屬於一個計劃。

我希望爲Entry定義一個模型來顯示包含所有條目的數據查詢器(CGridView),並顯示條目所屬的程序。

  • 條目已study_id - >指的是學習,

  • 研究已經program_id - >指一個程序,

  • 計劃有屬性

我希望顯示條目所屬的程序名稱。 我只知道如何定義一個單一的關係條目,但我完全無法解決我目前的問題。我的關係應該是什麼?以及什麼屬性?

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

} 

此外,如果我有這種關係,我將如何定義我的排序,然後爲數據提供者?

'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