少し助けが必要です。 symfonyで検索バーを実装しようとしています。この検索バーはデータベースにあります。私は何ができるのですが、問題は私が絶対にその人物がその名前に対応するのを見つけるために完全な名前をつける必要があるということです。私が入力した名前の先頭からすべての人を検索できるようにしたいということを除いて。例えば: Iが "ダビング" と入力し、私が見つける: "デュボア"、 "Dubost"、 "Dubububu"、....名前の始まりでDBの研究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(),
));
}
方法のリポジトリ2
`クラスClientsRepositoryが延びます\教義\ 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();
}
} `