我有一个视图,其中包含搜索表单,我希望当用户输入某些单词时,我从数据库中检索数据并显示他们进入新视图页面:
搜索表单
<!-- Search Form -->
<form class="pull-right hidden" role="search" id="nav-search-form" method="post" action="{{ path('search_route') }}">
<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"><i class="fa fa-search"></i></button>
</span>
</div>
</form>
路由:
search_route:
path: /results
defaults: { _controller: MyAppDataBundle:Default:search }
我在DefaultController中的操作:
public function searchAction()
{
$request = $this->getRequest();
$data= $request->request->all();
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery(
'SELECT p.name , p.description
FROM MyAppDataBundle:MyTable p
WHERE p.name LIKE data'
)->setParameter('data',$data['search']);
$res = $query->getResult();
return $this->render('MyAppDataBundle:Default:index.html.twig', array(
'res' => $res));
}
我有错误:
[Syntax Error] line 0, col 117: Error: Expected '.' or '(', got 'data'
答案 0 :(得分:4)
在您的查询中,您没有定义?
或:data
WHERE p.name LIKE data
应该是
WHERE p.name LIKE :data