2016-04-06 13 views
0

Symfony3 kullanıyorum3: Sorgumda kullanmak istiyorum.symfony3'te findBy ile nasıl kullanılır?

$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); 

Onun boş

Herkes beni önerebilirsiniz dönmek?

cevap

2

Doktrin depolarının find*() yöntemleri, karşılaştırma için LIKE kullanarak sorgulama yapılmasına izin vermez. Özel bir DQL sorgusu yazmanız gerekir (bkz. Querying for Objects with DQL ve Doctrine Query Language):

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