2016-07-06 8 views
-1

クエリの&andWhere部分がなぜ機能しないのか誰かが私に説明することはできますか?ここでDoctrine Query Builder andWhereが機能しない

は私の関数である:無効なパラメータ形式、:私はそれがこれをtrows

if(!empty($date)){ 
     $query->andWhere('S.date = ?'); 
     $parameters[] = $date; 
    } 

一部を追加するとき

public function searchSpectacle(request $request){ 
    $data = $request->request->all(); 

    $terms = explode(" ", $data["searchterms"]); 
    $date = str_replace('/', '-', $data['datestring']); 

    $query = $this->getDoctrine()->getManager()->createQueryBuilder(); 
    $query->select('S') 
      ->from('AppBundle:Spectacle','S'); 
    $i = 0; 
    $parameters = array(); 

    foreach ($terms as $key => $term){ 
     $query->orWhere('LOWER(S.nom) LIKE ?' . $i++); 
     $parameters[] = '%' . $term . '%'; 
    } 
    foreach ($terms as $key => $term){ 
     $query->orWhere('LOWER(S.artiste) LIKE ?' . $i++); 
     $parameters[] = '%' . $term . '%'; 
    } 

    if(!empty($date)){ 
     $query->andWhere('S.date = ?'); 
     $parameters[] = $date; 
    } 



    $query->setParameters($parameters); 
    $spectacles = $query->getQuery()->getResult(); 

    return $this->render('liste_complete.html.twig', array('spectacles' => $spectacles)); 
} 

すべてが完璧に動作しますが?与えられた、しかし:または?期待される。

アイデア?

ありがとうございました!ギヨーム

答えて

0

は、おそらくあなたは、他のパラメータに行われるようPARAM IDを連結する欠場します。それは作品

if(!empty($date)){ 
    $query->andWhere('S.date = ?' . $i++); 
    $parameters[] = $date; 
} 

・ホープ、このヘルプ

+0

:これを試してみてください!私が気付かなかったとは信じられない。どうもありがとうございました。 –

関連する問題