Yii模型关系连接(HAS_ONE)

时间:2013-09-06 13:03:43

标签: mysql yii relationship foreign-key-relationship

我想要一个关系及其参数的基本语法

我需要这些澄清

  • BELONGS_TO和HAS_ONE之间的区别?
  • 我想在CGridView上使用关系(该关系将另一个表元素称为外键) 对于Eg 我有三张桌子
  • Messenger
  • 用户登陆
  • USERPROFILE

我在Messenger Admin Grid中 我有UserLogin表的主键 该userlogin具有userprofile主键 现在我想访问网格中的userProfile字段

我已经尝试了(通过)关系,如

在Messenger模型中

    'relationeg'=>array(self::HAS_ONE,'Userprofile',array('user_id'=>'id'),'through'=>'user'),
'user'=>array(self::BELONGS_TO, 'UserLogin','user_id'),

我在我的网格上访问它

    .....
    ....
array(
    'name'=>'message_by',
    'value'=>'$data->relationeg->username'
),
....
...

但我得到的错误数据完全不同于基表记录的密钥

我怀疑这一行

'relationeg'=>array(self::HAS_ONE,'Userprofile',array('user_id'=>'id'),'through'=>'user'),

在这个自我:: HAS_ONE意味着什么? 当我添加连接查询的where条件时,如何在此

上添加条件

提前谢谢

欢迎您的回答

1 个答案:

答案 0 :(得分:1)

关键点: BELONGS_TO关系表示此模型中的字段指向另一个模型中的主键;在这种情况下,当前模型拥有链接字段。

关键点: HAS_ONE关系表示某些其他模型的链接字段指向此模型的主键;在这种情况下,相关模型拥有链接字段。

我们可以知道PARENT表是没有外键的表,而CHILD表是“依赖”父表的那个,也就是说,它有一个外键。

鉴于此,一个孩子 BELONGS_TO 一个父母和一个父母 HAS_ONE CHILD。

答案是here