1
我有3種型號:Yii的:屬於通過
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:骯髒的黑客攻擊。在Messages
class BelongsToThrough extends CBelongsToRelation {
public $through;
}
設置爲關係類型:定義新的類型關係
'group' => array('BelongsToThrough', 'Groups', 'group_id', 'through' => 'user')
和它的作品。不知何故。有人能解釋這是如何工作的?
起來看看[CHasOneRelation]源(https://github.com/yiisoft/yii /blob/1.1.12/framework/db/ar/CActiveRecord.php#L2155) –