yii中的多个连接

时间:2012-05-17 23:36:18

标签: php mysql yii

我从yii开始。

我有以下数据库结构:

Table:             Rows:

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

我想要将 status = 3 项目中的所有用户检索为 role = manager 。顺便说一下,这是我的代码,我需要进行第二次连接才能达到项目状态。

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

我可以使用条件制作它,还是应该实现SQL命令并运行它?

由于

1 个答案:

答案 0 :(得分: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中你有阵列形式的所有记录......