Reputation: 37
I want to create a simple search function.
Search form
<form class="pull-right hidden" role="search" id="nav-search-form" method="post" action="{{ path('_search') }}">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search" name ="search">
<span class="input-group-btn">
<button type="submit" class="btn btn-default"></button>
</span>
</div>
</form>
In my DefaultController. I have a search function
public function searchAction(){
$request = $this->getRequest();
$data =$request->request->all();
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery(
'SELECT p.type, p.id
FROM FooTransBundle:Trans p
WHERE p.type LIKE :data')
->setParameter('data',$data['search']);
$res = $query->getResult();
return $this->render('FooTransBundle:Default:search.html.twig', array(
'res' => $res));
}
And after I run that I got an error
Notice: Undefined index: search in C:\xampp\htdocs\Sample\src\Foo\TransBundle\Controller\DefaultController.php line 96
It is in the line ->setParameter('data',$data['search']); of my Controller
Can someone help me. I am very new to symfony. Thanks for your help.
Upvotes: 3
Views: 10023
Reputation: 726
Try this:
public function searchAction(){
$request = $this->getRequest();
$data = $request->request->get('search');
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery(
'SELECT p FROM FooTransBundle:Suplier p
WHERE p.name LIKE :data')
->setParameter('data',$data);
$res = $query->getResult();
return $this->render('FooTransBundle:Default:search.html.twig', array(
'res' => $res));
Upvotes: 4