2013-06-25 55 views
1

我目前正在尝试使用由Gii自动生成的Yii框架关系来显示/检索我的数据库中的数据。 (MANY_MANY)在yii中使用多对多关系

用户模型包含:

return array(
     'memberOfTeams' => array(self::MANY_MANY, 'UsersTeam', '{{teamMembers}}(userId, teamId)'), 
    ); 

UserTeam模型包含:

return array(
     'teamMembers' => array(self::MANY_MANY, 'User', '{{teamMembers}}(teamId, userId)'), 
    ); 

目前我的工作称为profile.php用户视图。我所要做的就是显示当前用户以及分配给他的所有小组。

teamMembers包含teamId和userId。

我该如何写这个查询?

我有这个目前

<?php echo CHtml::dropDownList("teamName", 'id', Chtml::listData(UsersTeam::model()->with('teamMembers')->findAll(teamMembers.userId, array($model->id)), 'id', 'teamName'),array('empty'=>'Select Team')); ?> 

我能够得到的所有信息,如果我使用的findAll(),但我只希望用户被分配到小组。

+0

您好像@Mtvw得到了一个很好的答案。如果你还没有,我还会大力推荐浏览Yii论坛:http://www.yiiframework.com/forum/祝你好运! – DaveyLaser

回答

2

我的一个项目做类似的事情:

店和卡之间

MANY_MANY关系,该数据提供程序是用来显示的链接到一个特定卡的商店列表:

$shopDataProvider=new CActiveDataProvider('Shop', 
      array(
       'criteria'=>array(
        'with'=>array('cardShop'), 
        'condition'=>'cardShop.card_id=:cardId', 
        'params'=>array(':cardId'=>$id), 
        'order'=>'t.id DESC', 
        'together'=>true, 
       ), 
      ) 
     );