我這裏有一個情況 有兩種型號的用戶,帖子 現在我想通過用戶&帖子中調整的關係,或通過添加到列表發佈的用戶,其用戶類型那些帖子= 1 這是可能的任何類型的範圍?警予關係活動記錄
我現在
User
'Posts' => array(self::HAS_MANY, 'Post', 'userId'),
Posts
'User' => array(self::BELONGS_TO, 'User', 'userId'),
我這裏有一個情況 有兩種型號的用戶,帖子 現在我想通過用戶&帖子中調整的關係,或通過添加到列表發佈的用戶,其用戶類型那些帖子= 1 這是可能的任何類型的範圍?警予關係活動記錄
我現在
User
'Posts' => array(self::HAS_MANY, 'Post', 'userId'),
Posts
'User' => array(self::BELONGS_TO, 'User', 'userId'),
您可以命名範圍或關係做到這一點。例如,你可以定義你的關係是這樣的:
'Posts' => array(self::HAS_MANY, 'Post', 'userId', 'condition' => 't.userType=1')
關於「命名範圍」讀到這裏: http://www.yiiframework.com/doc/guide/1.1/en/database.ar#named-scopes
您可以在飛行中添加的過濾器爲命名範圍調整的關係定義,像這樣的:
class User extends CActiveRecord
{
public function relations()
{
return array(
'Posts'=>array(self::HAS_MANY, 'Post', 'userId',
'with'=>array(
'User'=>array(
'scopes'=> array(
'userType' => 1,
),
),
),
),
);
}
}
更多信息可以在Yii的指南中找到爲relational-query-with-named-scopes
不,這不是一個可行的解決方案。我認爲這個關係需要調整 'User'=> array(self :: BELONGS_TO,'User','userId'), – iThink 2011-12-20 07:52:20