如何在 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);
我在为 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);