/**
  * 
  * @param Search $search
  * @return array|null
  */
 public function search($search)
 {
     if (!$search instanceof Search) {
         $s = new Search();
         $s->setQuery($search);
         $keywords = $s->getKeywords();
     }
     if (empty($keywords)) {
         return array();
     }
     $qb = $this->getSearchQb();
     if ($qb === null) {
         return null;
     }
     $params = $this->getSearchParams();
     $wheres = array();
     foreach ($keywords as $key => $keyword) {
         foreach ($params as $param) {
             $wheres[$param][] = $param . ' LIKE ?' . $key;
         }
         $qb->setParameter($key, '%' . $keyword . '%');
         //$qb->orWhere($param . ' LIKE ?'.$key);
     }
     foreach ($params as $param) {
         $qb->orWhere(implode(' OR ', $wheres[$param]));
     }
     $orderBys = $this->getSearchOrderBy();
     foreach ($orderBys as $champ => $order) {
         /* Vérifier $order = 'asc' ou 'desc' */
         $qb->addOrderBy($champ, $order);
     }
     return $qb->getQuery()->getResult();
 }
 /**
  * @Route("/search",name="transmitter_search")
  * @Method("get")
  * @Template()
  */
 public function searchAction(Request $request)
 {
     $formData = $request->get('jlm_core_search');
     if (is_array($formData) && array_key_exists('query', $formData)) {
         $em = $this->getDoctrine()->getManager();
         $entity = new Search();
         $query = $formData['query'];
         $entity->setQuery($query);
         return array('transmitters' => $em->getRepository('JLMTransmitterBundle:Transmitter')->search($entity), 'asks' => $em->getRepository('JLMTransmitterBundle:Ask')->search($entity));
     }
     return array();
 }