如何在 ZF2 中执行 orWhere?

How todo a orWhere in ZF2?

我在为 ZF2 创建参数数组时遇到困难,我可以在其中执行 where / or

我知道从 ZF2 开始删除了 orWhere,但有一些我无法使用的解决方法:

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);