Ashish  Kumar Saxena
Ashish Kumar Saxena

Reputation: 4710

how to use like with findBy in symfony3?

I am using symfony3: I want use like in my query.

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

Its return null

Anyone can suggest me ?

Upvotes: 1

Views: 2495

Answers (1)

xabbuh
xabbuh

Reputation: 5881

The find*() methods of Doctrine repositories don't allow to perform queries using LIKE for comparison. You need to write a custom DQL query (see Querying for Objects with DQL and Doctrine Query Language):

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

Upvotes: 2

Related Questions