CakePHP同时检查两个查找条件

时间:2012-01-15 18:16:29

标签: php cakephp

我有以下查找代码:

if($this->User->find('first', array(
                        'conditions' => array(
                            'User.username' => $this->data['User']['username'],
                            'User.email' => $this->data['User']['username'])
                    )))

这个想法是,它会查找用户是否存在与用户名输入字段中发送的电子邮件或用户名相匹配的电子邮件或用户名。

问题在于,实际上它会尝试和匹配BOTH,而不是一个或另一个我真正想要的。我怎么做呢?

我尝试了以下但仍然没有成功:

if($this->User->find('first', array(
                        'conditions' => array('OR' => array(
                            array('User.username' => $this->data['User']['username']),
                            array('User.email' => $this->data['User']['username'])))))

由于

1 个答案:

答案 0 :(得分:4)

你很接近,应该是这样的

$opts = array(
   'conditions' => array(
       'or' => array(
          'User.username' => $this->data['User']['username'],
          'User.email' => $this->data['User']['username']
        )
    )
)
$this->User->find('first', $opts)