php - 将 MySQL 查询转换为 Symfony 原则
问题描述
我有这个MySQL
查询,我想将其转换为 Doctrine 理解的查询。
SELECT name from users where project = 10 and (classification = 12
or classification is null)
所以我试图在 Doctrine 中转换它,但它不起作用。
$query->AndWhere('users.classification = :classification');
$query->setParameter(':classification', $classification);
$query->orWhere('users.classification = :classification');
$query->setParameter(':classification', null);
我尝试使用$query->expr()
我没有成功的表达方式
解决方案
要将括号中的多个 where 语句分组,您可以使用orx
和andx
$queryBuilder->andWhere($queryBuilder->expr()->orX(
'users.classification = :classification',
'users.classification IS NULL'
))
->setParameter(':classification', $classification);
或者用教义表达:
$queryBuilder->andWhere($queryBuilder->expr()->orX(
$queryBuilder->expr()->eq('user.classification', ':classification'),
$queryBuilder->expr()->isNull('users.classification')
))
->setParameter(':classification', $classification);
推荐阅读
- c# - 无法从控制面板中删除 wix 引导程序应用程序
- java - 带有正斜杠的 Feign 客户端 URL
- kubernetes - Minikube 隧道不断要求 sudo
- r - 如何将所选列格式化为百分比 - R Kable
- reactjs - 提交时清除 Formik 表单不起作用,我做错了什么?
- vue.js - Vue Good Table 过滤复合列
- sql - SQL 根据其他行的值更新每一行
- css - 字体出现锯齿状,抗锯齿更接近淡紫色而不是灰色
- oauth - 通过 Azure API 管理公开受 OAUTH 保护的 API 并执行委派
- git - 如何在不影响之前完成的拉取请求的情况下将分叉的 repo 重置为其原始状态?