CakePHP模型查询构造

时间:2011-07-30 23:16:43

标签: cakephp

您好我刚开始使用CakePHP,我想知道如何进行某个查找。

基本上我有一个名为User的模型,它与另一个名为roles的模型有一个hasMany关系。我想基本上执行SQL调用:

SELECT * 来自用户 在哪里( 选择 * 来自角色 WHERE user_id = users.id )

但也可以获得hasMany相关数据。

但是我很难搞清楚CakePHP中最好的方法是什么,除了直接编写MySQL之外。谢谢!

2 个答案:

答案 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

添加一个条件