2012-08-06 125 views
1

使兩個表的兩個外鍵值之間的關係我有數據庫,就像這個如何在Yii中

==== cis_policy_registration==== 
id 
policy_id 
email_id 
policy_start_date 


==== cis_policy_family_details=== 
id 
policy_id 
is_main_applicant 
firstname 
lastname 
gender 

現在如何使模型之間與policy_id(兩個表)的關係, 我想取名字,並登記模型姓和檢查是主申請人

必須在CGridView

列出

誰可以解決這個問題

在此先感謝

回答

2

這兩個表之間的關係應該從「主」模式(政策)來處理,所以在策略模型類,你應該有:

'policy_reg' => array(self::HAS_ONE, 'PolicyRegistration', 'policy_id'), 
'policy_details' => array(self::HAS_ONE, 'PolicyDetails', 'policy_id'), 

然後:

$policy = Policy::model()->with(array('policy_details'))->findByPk($pk); 
$policy->policy_details->is_main_applicant; 
... 

而且在CGridView你可以(把從策略模型CActiveDataProvider對象後)打印這樣的關係值:

'policy_details.firstname' 

array(
    'name'=>'Firstname', 
    'value'=>'$data->policy_details->firstname', 
), 
+0

如何獲得$ PK或者[$政策=策略::模型() - >用(陣列( 'policy_details')) - > findByPk($ PK)]此代碼必須粘貼 – Jethik 2012-08-06 09:38:13

+0

$ pk是您的策略模型的主鍵(id)。 – BornToDrink 2012-08-06 14:39:22