本文介绍了如何在 ZF2 中做 orWhere?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在为 ZF2 创建 params 数组时遇到困难,我可以在其中执行 where/或
I'm having difficulties to create params array for ZF2 where I can do a where / or
我知道 orWhere 从 ZF2 开始被删除,但有一些我无法工作的解决方法:
I know that orWhere is removed as of ZF2 but there are workaround which I can't get working:
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
)
), ...
我认为这是待办事项,但似乎不是.
I thought this was the way todo but it seems not.
推荐答案
您可以使用 NEST
特殊属性进行复杂查询:
You can use the NEST
special property to do complex querying:
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 中做 orWhere?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!