如何在Yii中建立两个表的两个外键值之间的关系

如何在Yii中建立两个表的两个外键值之间的关系,yii,relation,Yii,Relation,我有这样的数据库 ==== 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中列出

我有这样的数据库

==== 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中列出

谁能解决这个问题


提前感谢

这两个表之间的关系应该从“主”模型(策略)处理,因此在策略模型类中,您应该有:

'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对象后):


如何获取$pk或where[$policy=policy::model()->with(array('policy_details'))->findByPk($pk);]此代码必须粘贴$pk是策略模型的主键(id)。
'policy_details.firstname'
array(
    'name'=>'Firstname',
    'value'=>'$data->policy_details->firstname',
),