在Symfony2中搜索扔树枝

时间:2014-03-17 20:28:18

标签: php symfony search twig

我有一个视图,其中包含搜索表单,我希望当用户输入某些单词时,我从数据库中检索数据并显示他们进入新视图页面:

搜索表单

 <!-- 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'

1 个答案:

答案 0 :(得分:4)

在您的查询中,您没有定义?:data

等参数
  WHERE p.name LIKE data

应该是

  WHERE p.name LIKE :data

See Symfony topic Databases and Doctrine