如何在 ZF2 中执行 or 位置


How todo a orWhere in ZF2?

我很难为 ZF2 创建参数数组,我可以在其中执行 where/或

我知道 orwhere 从 ZF2 开始被删除,但有一些解决方法我无法工作:

use Zend'Db'Sql'Predicate;
$params = array(
        'select' => implode(', ', array(
            '`user`.`id`',
            '`user`.`username`',
            '`user`.`firstname`',
            '`user`.`middlename`',
            '`user`.`lastname`',
            '`user`.`externalEmail`',
            '`user`.`email`',
        )),

         "where" => implode(
                new Predicate'PredicateSet(
                    array(
                            new Predicate'Like( '`user`.`email` = :email'),
                            new Predicate'Like( '`user`.`email2` = :email'),
                    ),
                    Predicate'PredicateSet::COMBINED_BY_OR
                )
            ), ...

我以为这是要做的方法,但似乎不是。

可以使用 NEST 特殊属性执行复杂的查询:

use 'Zend'Db'Sql'Where;
use 'Zend'Db'Sql'Select;
$select = new Select();
$select->from('user');
$where = new Where();
$where->NEST
    ->equalTo('email', $email)
    ->OR
    ->equalTo('email2', $email)
->UNNEST;
$select->where($where);