2013-06-25 3 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 관계,이 dataProvider의 특정 카드에 연결 상점의 목록을 표시하는 데 사용됩니다 : 당신이 한 것 같습니다

$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, 
       ), 
      ) 
     );