2016-04-06 11 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(); 
相關問題