1

我有这样的数据库

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

谁能解决这个问题

提前致谢

4

1 回答 1

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 中,您可以像这样打印关系值(在从 Policy 模型发送 CActiveDataProvider 对象之后):

'policy_details.firstname'

或者

array(
    'name'=>'Firstname',
    'value'=>'$data->policy_details->firstname',
),
于 2012-08-06T07:47:51.330 回答