2017-07-18 66 views
0

我在查詢生成器在查詢中有一個查詢。我的查詢是:Doctrin的查詢生成器。使用AND查詢where條款

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

如何使用AND子句查詢?我的意思是在where子句中替換cc.active = 1 AND system_category=1'而不是cc.active = 1。 我試圖以這種方式:

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

但這種方式是這麼想的工作。我怎麼能正確地做到這一點? 我會大力幫忙的。 最好的問候

回答

1

試試這個:

$result = $this->entityManager->createQueryBuilder() 
    ->select('cc', 'cct', 'cces')->from('App\Http\Entities\Cic\CaseCategory', '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('App\Http\Entities\Cic\CaseCategory', '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();