Doctrine DQL conditional query(Doctrine DQL 条件查询)
本文介绍了Doctrine DQL 条件查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用 Doctrine 的查询构建器构建动态查询.假设我还想在下面选择一个结束时间(仅当输入了一个结束时间).我将如何有条件地将其添加到语句中?
I'm trying to build a dynamic query with Doctrine's query builder. Let's say I'd also like to optionally select an end time in the following (only if one was entered). How would I add this conditionally to the statement?
$query = $this->getEntityManager()->createQueryBuilder()
->select('m')
->from($this->getEntityName(), 'm')
->where("m.start > '" . date('Y-m-d H:i:s', strtotime($start)) . "'")
->getQuery();
推荐答案
我会这样做:
// first, create the query builder
$qb = $this->getEntityManager()->createQueryBuilder()
->select('m')
->from($this->getEntityName(), 'm')
;
// add the default condition
$conditions = array(
$qb->expr()->gt('m.start', date('Y-m-d H:i:s', strtotime($start)));
);
// put your condition here
if (isset($end)) {
$conditions[] = $qb->expr()->lt('m.end', date('Y-m-d H:i:s', strtotime($end)));
}
// convert the conditions to an AND clause
$conditions = call_user_func_array(array($qb, 'andX'), $conditions);
// add the WHERE clause
$qb->where($conditions);
// get the query
$query = $qb->getQuery();
这篇关于Doctrine DQL 条件查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:Doctrine DQL 条件查询


基础教程推荐
猜你喜欢
- Cron Jobs 调用带有变量的 PHP 脚本 2022-01-01
- 在PHP中根据W3C规范Unicode 2022-01-01
- 有什么方法可以用编码 UTF-8 而不是 Unicode 返回 PHP`json_encode`? 2021-01-01
- PHP PDO MySQL 查询 LIKE ->多个关键词 2021-01-01
- PHP 类:全局变量作为类中的属性 2021-01-01
- YouTube API v3 点赞视频,但计数器不增加 2022-01-01
- 如何在 Laravel 5.3 注册中添加动态下拉列表列? 2021-01-01
- 如何替换eregi() 2022-01-01
- 如何在 Laravel 中使用 React Router? 2022-01-01
- 学说 dbal querybuilder 作为准备好的语句 2022-01-01