如何在 ZF2 中执行 or 位置



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

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

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

         "where" => implode(
                new PredicatePredicateSet(
                    array(
                            new PredicateLike( '`user`.`email` = :email'),
                            new PredicateLike( '`user`.`email2` = :email'),
                    ),
                    PredicatePredicateSet::COMBINED_BY_OR
                )
            ), ...

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

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

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

最新更新