CakePHP模型查询构造

CakePHP模型查询构造,cakephp,Cakephp,大家好,我刚开始学习CakePHP,我想知道如何进行某种查找查询 基本上,我有一个名为User的模型,它与另一个名为roles的模型有很多关系。我希望基本上按照以下几行执行SQL调用: 选择* 来自用户 哪里有 选择* 来自角色 其中user_id=users.id 同时也得到了很多相关的数据 但是,除了直接编写MySQL之外,我很难找出在CakePHP中实现这一点的最佳方法。谢谢 在用户控制器中 $this->User->find('all', array('conditio

大家好,我刚开始学习CakePHP,我想知道如何进行某种查找查询

基本上,我有一个名为User的模型,它与另一个名为roles的模型有很多关系。我希望基本上按照以下几行执行SQL调用:

选择* 来自用户 哪里有 选择* 来自角色 其中user_id=users.id

同时也得到了很多相关的数据

但是,除了直接编写MySQL之外,我很难找出在CakePHP中实现这一点的最佳方法。谢谢

在用户控制器中

  $this->User->find('all', array('conditions' => array('User.id' => 'Role.user_id'), 'recursive' => 1));

指定recursive 1也将提取所有相关数据

@Ehtesham:最好使用 要查找用户和相关角色记录,请执行以下操作:


选择*来自存在的用户选择*来自user_id=users的角色。id:如果我理解正确,您想查找至少有一个角色的所有用户吗?如果是这样,您应该设置并向find'User.role_count>'=>0

hmm添加一个条件,尽管上面的MySQL查询返回了8行,但我似乎没有得到任何结果。有一个错误,模型名称必须是单数,即User而不是Users。我已更新了答案。答案非常模糊,是否要获取所有具有特定角色的用户?抱歉,我对角色表中具有一个或多个角色行的所有用户进行了模糊。如果一个用户具有多个角色,则我猜单个角色可能属于多个用户。如果是这种情况,则应该是一个HABTM关联,而不是多个,请尝试以下操作:。当然,如果您只想从“仅角色”表中提取。但若用户有其他的关联,那个么也需要拉入。
$this->User->find('first',array(
    'conditions'=>array('User.id'=>$some_id),
    'contain'=>array('Role')
));