【问题标题】:how to make relation between two foreign key values of two tables in Yii如何在 Yii 中建立两个表的两个外键值之间的关系
【发布时间】:2012-08-06 07:24:44
【问题描述】:

我有这样的数据库

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

谁能解决这个问题

提前致谢

【问题讨论】:

    标签: yii relation


    【解决方案1】:

    这两个表之间的关系应该从“主”模型(Policy)处理,所以在Policy模型类中你应该有:

    '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',
    ),
    

    【讨论】:

    • 如何获取 $pk 或 where [$policy = Policy::model()->with(array('policy_details'))->findByPk($pk);] 此代码必须粘贴
    • $pk 是策略模型的主键 (id)。
    猜你喜欢
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多