我有 3 个模型:
Groups
id
name
Users
id
group_id
login
// ....
Messages
id
user_id
title
body
// ....
用户属于群组并拥有许多消息
'group' => array(self::BELONGS_TO, 'Groups', 'group_id'),
'messages' => array(self::HAS_MANY, 'Messages', 'user_id')
组有很多用户
'users' => array(self::HAS_MANY, 'Users', 'group_id')
消息属于用户
'user' => array(self::BELONGS_TO, 'Users', 'user_id')
Yii 中没有属于关系,$through
所以我如何定义连接消息和组的关系(即消息属于组)?
UPD:一个肮脏的黑客。定义新的关系类型:
class BelongsToThrough extends CBelongsToRelation {
public $through;
}
将其设置为关系类型Messages
:
'group' => array('BelongsToThrough', 'Groups', 'group_id', 'through' => 'user')
它有效。不知何故。有人可以解释一下这是如何工作的吗?