如何在ZF2中使用或者在哪里?

时间:2016-01-18 00:14:35

标签: php zend-framework2

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

我知道或者从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
                )
            ), ...

我认为这是todo的方式,但似乎没有。

1 个答案:

答案 0 :(得分:3)

您可以使用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);