CakePHP多个或多个条件

CakePHP多个或多个条件,php,cakephp,cakephp-1.3,Php,Cakephp,Cakephp 1.3,我想创建一个简单的查询,但我似乎不知道如何使用Cakes条件Cakes 1.3来实现它,我想做的是非常简单的,在SQL中它只是 SELECT * FROM table WHERE firstvalue != '' OR secondvalue != '' 所以基本上只有在firstvalue或SecondValue中有值时才返回行 现在我有 $conditions = array( "NOT" => array( 'firstvalue' => ''

我想创建一个简单的查询,但我似乎不知道如何使用Cakes条件Cakes 1.3来实现它,我想做的是非常简单的,在SQL中它只是

SELECT * FROM table WHERE firstvalue != '' OR secondvalue != ''
所以基本上只有在firstvalue或SecondValue中有值时才返回行

现在我有

$conditions = array(
    "NOT" => array(
        'firstvalue' => ''
    )
);

这对第一个值很有效,但如果我尝试向其添加任何内容,它仍然只返回第一个值的结果。要在或条件中添加多个字段,必须在数组中写入字段


我希望它对您有用。

有两种方法:

$conditions = array(
    'OR' => array(
        array('NOT' => array('firstvalue' => '')),
        array('NOT' => array('secondvalue' => ''))
    )
);
或者,利用非a或非b==非a和b的事实:

$conditions = array(
    'NOT' => array(
        array('firstvalue' => ''),
        array('secondvalue' => '')
    )
);

这似乎返回两个值都为空的结果,这将使select语句成为一条语句,而不是ORAs语句,这将返回第一个值不为空或第二个值为空的结果。那不是OP要求的。在第二个条件下添加NOT时要小心,因为这将导致键冲突,并且只保留第二个。
$conditions = array(
    'NOT' => array(
        array('firstvalue' => ''),
        array('secondvalue' => '')
    )
);