Ich würde ein wenig Hilfe brauchen. Ich versuche eine Suchleiste mit Symfony zu implementieren, diese Suchleiste in der Datenbank. Was ich tun kann, aber das Problem ist, dass ich absolut den vollständigen Namen setzen muss, um zu finden, dass die Person (en) diesem Namen entspricht. Abgesehen davon, dass ich alle Personen ab dem Beginn des eingegebenen Namens wiederfinden möchte. Zum Beispiel: I-Typ "Dub" und ich finde: "Dubois", "Dubost", "Dubububu", ....Forschung in der DB von Anfang an den Namen symfony
public function searchAction (Request $request)
{
$defaultData = array('search' => 'Type your search here');
$form = $this->createFormBuilder()
->add('search', TextType::class, array('label'=>'Surname ?','required'=>true))
->add('send', SubmitType::class)
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
$repository = $this
->getDoctrine()
->getManager()
->getRepository('PegasusWebBundle:Clients')
;
//$clients = $repository->findBySurname($form->get('search')->getData()); // Method 1
$clients = $repository->myFindname($form->get('search')->getData()); // Method 2 with Repository
return $this->render('PegasusWebBundle:Default:searchresult.html.twig',array(
'clients'=> $clients));
}
else
return $this->render('PegasusWebBundle:Default:search.html.twig', array(
'form' => $form->createView(),
));
}
Das Repository für die Methode 2
`Klasse ClientsRepository erweitert \ Lehre \ ORM \ EntityRepository {
public function myFindname($name)
{
// Method 2
$qb = $this->createQueryBuilder('a');
$qb->where(
$qb->expr()->like('a.surname' ,':surname'))
->setParameter('surname', $name);
return $qb
->getQuery()
->getResult();
}
} `