我从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命令并运行它?
由于
答案 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中你有阵列形式的所有记录......