您好我刚开始使用CakePHP,我想知道如何进行某个查找。
基本上我有一个名为User的模型,它与另一个名为roles的模型有一个hasMany关系。我想基本上执行SQL调用:
SELECT * 来自用户 在哪里( 选择 * 来自角色 WHERE user_id = users.id )
但也可以获得hasMany相关数据。
但是我很难搞清楚CakePHP中最好的方法是什么,除了直接编写MySQL之外。谢谢!
答案 0 :(得分:0)
$this->User->find('all', array('conditions' => array('User.id' => 'Role.user_id'), 'recursive' => 1));
指定递归1也将拉出所有相关数据
答案 1 :(得分:0)
@Ehtesham:最好使用Containable 要查找用户和相关角色记录:
$this->User->find('first',array( 'conditions'=>array('User.id'=>$some_id), 'contain'=>array('Role') ));
“SELECT * FROM users WHERE EXISTS(SELECT * FROM roles WHERE user_id = users.id)”:如果我理解正确,您想要找到至少有1个角色的所有用户?如果是,则应设置counterCache并为查找'User.role_count >'=>0