1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| /**
* Trouver les taches recherchées.
*
* @Route("/find", name="tache_find")
* @Template("TacheBundle:Tache:liste.html.twig")
*/
public function findAction(Request $request)
{
$defaultData = array('message' => 'Type your message here');
$searchForm = $this->createFormBuilder($defaultData)
->add('value','text', array('required'=>false/*, 'property_path' => false*/))
->add('valide','checkbox', array('label' => 'Tâche valide ?','required' => false/*, 'property_path' => false*/))
->add('type','choice', array('choices' => array('Expression exacte' => 'Expression exacte', 'Tous les mots' => 'Tous les mots', 'Le minimum' => 'Le minimum')))
->getForm();
if ($request->getMethod() == 'POST') {
$searchForm->bindRequest($request);
$data = $searchForm->getData();
$motcle=$data['value'];
$type=$data['type'];
if ($searchForm->isValid()) {
if($type == 'Expression exacte' ){
$em = $this->getDoctrine()->getEntityManager();
$taches = $em->getRepository('TacheBundle:Tache')->getExactList($motcle);
}
if($type == 'Tous les mots'){
$mots=explode(' ', $motcle);
$nombre_mots = count ($mots);
for($i=0; $i<$nombre_mots; $i++){
$requete='';
$requete.= 'AND tache.priorite LIKE \'%' . $mots[$i] . '%\' OR tache.commentaire LIKE \'%' . $mots[$i] . '%\'';
}
$requete = ltrim($requete,'AND');
$em = $this->getDoctrine()->getEntityManager();
$taches = $em->getRepository('TacheBundle:Tache')->getAllList($requete);
}
}
}
return array('taches' => $taches);
} |
Partager