Doctrin的Query Builder。在 AND 子句中使用 AND 进行查询



我在Question 的 Query Builder中有一个查询。我的查询是:

$result = $this->entityManager->createQueryBuilder()
->select('cc', 'cct', 'cces')->from('AppHttpEntitiesCicCaseCategory', 'cc')
->innerJoin('cc.type', 'cct')
->leftJoin('cc.eventSubject', 'cces')
->orderBy('cc.title')
->where('cc.active = 1')
->getQuery();

如何使用 AND 子句获取查询?我的意思是替换cc.active = 1 AND system_category=1' 而不是 where 子句中的cc.active = 1。 我正在以这种方式尝试:

$result = $this->entityManager->createQueryBuilder()
->select('cc', 'cct', 'cces')->from('AppHttpEntitiesCicCaseCategory', 'cc')
->innerJoin('cc.type', 'cct')
->leftJoin('cc.eventSubject', 'cces')
->orderBy('cc.title')
->where('cc.active = 1 AND system_category=1')
->getQuery();

但这样一来,它就行不通了。我怎样才能正确地做到这一点? 我会很高兴得到帮助。 此致敬意

试试这个:

$result = $this->entityManager->createQueryBuilder()
->select('cc', 'cct', 'cces')->from('AppHttpEntitiesCicCaseCategory', 'cc')
->innerJoin('cc.type', 'cct')
->leftJoin('cc.eventSubject', 'cces')
->orderBy('cc.title')
->where('cc.active = 1')
->andWhere('system_category=1')
->getQuery();

我建议你使用这样的参数:

$result = $this->entityManager->createQueryBuilder()
->select('cc', 'cct', 'cces')->from('AppHttpEntitiesCicCaseCategory', 'cc')
->innerJoin('cc.type', 'cct')
->leftJoin('cc.eventSubject', 'cces')
->orderBy('cc.title')
->where('cc.active = :active')
->andWhere('system_category=:system_category')
->setParameters(
[
'active' => 1,
'system_category' => 1
]
)
->getQuery();

最新更新