2017-08-09 18 views
0

こんにちは皆私はSymfony3で新しく、DQLリクエストには問題がありますが、それは空の結果を返します! リクエストはSearchBarから特定のフィールドを持つすべてのLogementを返さなければなりません!検索機能symfony 3

LogementController:

public function searchAction(request $request) 
{ 

    $log = $request->request->get('browser'); 
    $cat = $request->request->get('checkbox_type_1'); 
    $vil = $request->request->get('location[]'); 


    $q = $this->getDoctrine()->getManager() 
     ->getRepository('AcmeImmoBundle:Logement') 
     ->createQueryBuilder('A'); 

    $q ->leftJoin('A.categorie', 'C') 
     ->addselect('C') 


     ->leftJoin('A.district', 'D') 
     ->addselect('D')  
     ->leftJoin('D.ville', 'V') 
     ->addselect('V') 
     ->where($q->expr()->eq('A.logementname', ':log')) 
     ->andWhere($q->expr()->eq('C.categorietype', ':cat')) 

     ->andWhere($q->expr()->eq('V.villename', ':vil')) 
     ->setParameters(array('log' => $log,'cat' => $cat,'vil' => $vil)); 

$logement = $q->getQuery()->getResult(); 
      return $this->render('logement/search.html.twig', array(
           'logements' => $logement)); 
} 
+0

さらに詳しい情報が必要な場合は、私に助けてくれてありがとう! –

答えて

0

それは実際にハートが構造なしで問題を理解します。データのいくつかのダミー部分が役に立ちます。

また、あなたは

$q->getQuery()->getSQL() 

にそれを実行しようと生成されたSQLクエリを確認することができます。

さらにもう1つ。コントローラーでクエリを作成しないでください。常にコードを読みにくくします。たとえば、カスタムリポジトリクラスを定義し、そこにクエリービルダーを組み立てるメソッドを定義することができます

+0

ПавелМатвиенкоПавелМатвиенкоリポジトリにquerybuilderを定義しようとしましたが、もっと分かりやすい(エンティティ、小枝、リポジトリ)に投稿する必要があります!! –