带AND或OR的CakePHP查询
我有以下应该查找的查询: 用户id与用户id匹配且朋友id与朋友id匹配的行 或者用户id与friendId匹配且friendId与userId匹配的行 两者的状态都是1 我的代码是:带AND或OR的CakePHP查询,php,cakephp,Php,Cakephp,我有以下应该查找的查询: 用户id与用户id匹配且朋友id与朋友id匹配的行 或者用户id与friendId匹配且friendId与userId匹配的行 两者的状态都是1 我的代码是: public function isFriend($userId, $friendId) { return $search = $this->Friend->find('first', array( 'conditions'=>array(
public function isFriend($userId, $friendId)
{
return $search = $this->Friend->find('first', array(
'conditions'=>array(
'OR' => array(
'AND'=>array(
'Friend.user_id'=>$userId,
'Friend.friend_id'=>$friendId
),
'AND'=>array(
'Friend.user_id'=>$friendId,
'Friend.friend_id'=>$userId
)
),
'AND' => array(
'Friend.status'=>1
)
)
)
);
}
但是它不起作用。。。我环顾四周,似乎这与在处理两个和调用时正确获取数组有关,但我不明白。有人能帮我吗
谢谢您不能像mark所说的那样两次使用同一数组键,因此您必须将AND封装在单独的数组中
'OR' =>
array(
array('AND'=>array(
'Friend.user_id'=>$userId,
'Friend.friend_id'=>$friendId
)
),
array('AND'=>array(
'Friend.user_id'=>$friendId,
'Friend.friend_id'=>$userId
)
)
),
'AND' => array(
'Friend.status'=>1
)
你应该知道不能在同一个数组中使用数组键两次。我不知道。这就是问题所在。我在这里寻找帮助,这就是我如何把我的代码放在一起的。在那一页上,这正是我的解决方案,你使用了Jason标题为eg.的代码,而不是。您必须使用下面的代码块,谢谢。太多的数组让我很困惑;