Я пытаюсь создать форму поиска ... Все работает отлично, однако сейчас поиск работает только в том случае, если я ищу конкретный объект, и буквы должны быть идентичны продуктам имя.Symfony2 форма поиска с приблизительными результатами
вид:
$form = $this->createFormBuilder()
// ->setAction($this->generateUrl('search'))
->add('search', 'text', array(
'attr' => array(
'placeholder' => 'Search for products',
),
'label' => false))
->add('submit', 'submit')
->getForm();
if ('POST' === $request->getMethod())
{
$form->handleRequest($request);
$data = $form->get('search')->getData();
return $this->redirect($this->generateUrl('searching', array('data' => $data)));
}
Как найти продукты:
$products = $em->getRepository('MpShopBundle:Product')->findProductsBySearch($data);
public function findProductsBySearch($data)
{
$qb = $this->createQueryBuilder('a');
$qb->where('a.model=:model');
$qb->SetParameter('model', $data);
return $qb->getQuery()->getResult();
}
Если я ищу, например, Test1 - продукт найден. Но если я пишу Test - продуктов не будет найдено.
Что я хочу достичь, это найти все продукты, которые имеют строку, указанную в форме.
Например, если у меня есть 3 продукта: Test1, Test2, Test3 ... Если я напечатаю Test и отправлю, я должен найти все эти продукты ... И неважно, если литеры в нижнем или верхнем регистре. Как я могу это сделать в PHP и Symfony?