2016-04-06 28 views
0

symfony3を使用しています: 私のクエリに似て使いたいです。symfony3でfindByと似た使い方は?

$repository = $this->getDoctrine()->getRepository('AppBundle:ABC'); 
     echo $searchstring = "LIKE '%".$searchtxt."%'"; die; 
     $res=$repository->findBy(array('fname' => $searchstring));   
     $normalizer = new ObjectNormalizer();  
     $encoder = new JsonEncoder(); 
     $serializer = new Serializer(array($normalizer), array($encoder)); 
     $response=$serializer->serialize($res, 'json'); // Output: {"name":"foo","sportsman":false} 
     return new Response($response); 

そのリターンヌル

誰もが私を提案することができますか?

答えて

2

Doctrineリポジトリのfind*()メソッドは、比較のためにLIKEを使用してクエリを実行することを許可していません。カスタムDQLクエリ(Querying for Objects with DQLDoctrine Query Languageを参照)を記述する必要があります。

$query = $em->createQuery("SELECT abc FROM AppBundle:ABC abc WHERE fname LIKE :fname"); 
$query->setParameter('fname', 'LIKE "%'.$searchtxt.'%"'); 
$result = $query->getResult(); 
関連する問題