2012-01-15 4 views
0

У меня есть следующий код найти: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']))))) 

Благодарности

ответ

4

Вы были близки, он должен идти, как этот

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

это действительно имеет значение, если «или» или «ИЛИ» (малые или шапки)? – sipiatti

+0

@sipiatti это не имеет значения –