Reputation: 4710
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
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