2012-05-17 97 views
1

我以yii開頭。yii中的多個連接

我有以下DB結構:

Table:    Rows: 

user    [id,login,password,name,email] 
userToProject  [user_id,project_id,role] 
project   [id,name,status] 

我想要檢索的所有項目中的工作的用戶提供狀態= 3角色=經理。這是我的代碼,我需要進行第二次連接以達到項目狀態。

$criteria=new CDbCriteria; 
$criteria->join='INNER JOIN {{userToProject}} a ON t.id=a.user_id and a.role='.Role::MANAGER; 
$criteria->distinct=true; 
return User::model()->findAll($criteria); 

我可以用一個標準,使其或者我應該實施的SqlCommand和運行呢?

感謝

回答

5

以及您做出關係在userToProject模型是這樣的...

'user'=>array(self::BELONGS_TO, 'User', 'user_id') 

// after belongs_to User is a model class name.. 

'project'=>array(self::BELONGS_TO, 'Project', 'project_id'), 

// after belongs_to Project is a model class name.. 

,然後用活動記錄如..

$allrecord = UserToProject::model()->with('user','project')->findAll(
           'status = :status AND role = :role', 
           array(':status' => 3 , 'role' => 'manager')); 

//in with bracket user , project is your relation name.. 
現在

在$ allrecord你把所有的在陣列形式的記錄...

+0

現在我希望這可以爲他工作正常.. –