ZF2 How to orWhere()(ZF2 如何 orWhere())
问题描述
我想弄清楚如何在 where 子句中使用 OR 进行 Mysql Select.默认情况下,where 语句中的所有子句都是 AND 运算的,经过几个小时的尝试和失败,查看网络无法使其工作.在 ZF1 中它将是 orWhere() 但在 ZF2 中没有.
I am trying to figure out how to make a Mysql Select with an OR in where Clause. By default all clauses in where statement are ANDed and after some hours of try and fail and looking the net can't make it work. In ZF1 it would be an orWhere() but there is not in ZF2.
这是我在 AbstracttableGateway
中的代码:
This is the code i have inside a AbstracttableGateway
:
$resultSet = $this->select(function (Select $select) use ($searchstring) {
$select->join('users','blog_posts.id_user = users.id',array('name'))
->join('blog_categories','blog_posts.id_category = blog_categories.id', array(
'cat_name' => 'name',
'cat_alias' => 'alias',
'cat_image' => 'icon'))
->order('date DESC');
//->where("title LIKE '%" .$searchstring . "%' OR content LIKE '%". $searchstring ."%'")
$select->where->like('content','%'.$searchstring.'%');
$select->where->like('title','%'.$searchstring.'%');
}
);
return $resultSet;
带有 $select->where->like
的行是 AND 运算的,我希望它们带有 OR.我应该改变什么?
the lines with the $select->where->like
are the ones that are ANDed and I want them with OR. What should I change?
推荐答案
ZF2 中没有 orWhere
,但你可以使用 ZendDbSqlPredicate
的任意组合代码>对象.对于 OR,在 PredicateSet
和 PredicateSet::COMBINED_BY_OR
中使用 2 个谓词.
There is no orWhere
in ZF2, but you could use any combination of ZendDbSqlPredicate
objects. For OR use 2 predicates in a PredicateSet
with PredicateSet::COMBINED_BY_OR
.
关于它的文档不多,但您可以浏览源代码 - 现在.
There's not much documentation for it, but you could browse the source - for now.
编辑:示例
use ZendDbSqlPredicate;
$select->where(array(
// ...
new PredicatePredicateSet(
array(
new PredicateLike('content', '%'.$searchstring.'%'),
new PredicateLike('title', '%'.$searchstring.'%'),
),
PredicatePredicateSet::COMBINED_BY_OR
),
// ...
));
这篇关于ZF2 如何 orWhere()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:ZF2 如何 orWhere()
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
- 如何使用 Google API 在团队云端硬盘中创建文件夹? 2022-01-01
- PHP foreach() 与数组中的数组? 2022-01-01
- 如何从数据库中获取数据以在 laravel 中查看页面? 2022-01-01
- openssl_digest vs hash vs hash_hmac?盐与盐的区别HMAC? 2022-01-01
- 如何在 Symfony2 中正确使用 webSockets 2021-01-01
- 使用 GD 和 libjpeg 支持编译 PHP 2022-01-01
- Laravel 5:Model.php 中的 MassAssignmentException 2021-01-01
- 覆盖 Magento 社区模块控制器的问题 2022-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
- PHP - if 语句中的倒序 2021-01-01