我必須在添加where
子句之後動態地將OR
表達式添加到由getListQueryBuilder
返回的查詢生成器中。我找不到任何合適的方法來做這件事,我剛開始學習教義。在Doctrine2查詢生成器中鏈接orX
我如何「鏈接」給定數量的orX
並將它們添加到我的構建器中?
public function getListQueryBuilder($ownerId)
{
$qb = $this->createQueryBuilder('t');
return $qb
->where($qb->expr()->eq('t.user', ':user'))
->setParameter('user', $ownerId);
}
$builder = getListQueryBuilder(4);
// $ORs is a dynamically builded array, here is just an example
$ORs = array();
$ORs[] = $builder->expr()->like("t.name", 'my name');
$ORs[] = $builder->expr()->like("t.description", 'desc');
// Adding ORs to the builder
$builder->andWhere($builder->expr()->orX(/* here */));
如果你不想閱讀全文: $或X = $ builder-> EXPR() - >或X(); foreach($ ORs as $ or) { $ orX-> add($ or); } $ builder-> andWhere($ orX); – 2012-10-15 13:45:08
@LouTerrailloune,應該成爲答案的一部分 – 2014-08-12 13:51:42
這對我來說是詭計!歡呼指出它:) – Sharpy35 2017-11-30 15:04:55