1

我从 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 命令并运行它?

谢谢

4

1 回答 1

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 你有数组形式的所有记录......

于 2012-05-18T05:15:44.803 回答