搜索可以使用一个或多个值进行搜索的函数

时间:2014-07-16 08:27:20

标签: php mysql symfony

我正在尝试创建搜索功能。但我在如何做到这一点上遇到了困难。我是symfony2的新手,只是自己学习并阅读一些教程。

我的DefaultController中有一个搜索功能。

public function searchAction(){     
$request = $this->getRequest();
$data = $request->request->get('search');
$data1 = $request->request->get('search1');
$data2 = $request->request->get('search2');

$em = $this->getDoctrine()->getManager();
$query = $em->createQuery(
 'SELECT p 
 FROM FooTransBundle:Transaction p, FooTransBundle:Supplier d
 WHERE p.transType LIKE :data
 AND d.name LIKE :data1
 AND p.sendDate LIKE :data2')
->setParameter('data',$data)
->setParameter('data1',$data1)
->setParameter('data2',$data2);  

$res = $query->getResult();

return $this->render('FooTransBundle:Default:search.html.twig', array(
'res' => $res));
}

在我的树枝上,我有一个search.html.twig

   <form class="form-horizontal"role="form"name ="search"method="post" action="{{path('foo_trans_search') }}">
  <div class="form-group">
    <label for="agr"class="col-sm-2 control-label">Trans Type</label>
      <div class="col-sm-10">
          <input type="text"class="form-control"id="agr"placeholder="Trans type" name ="search">
  </div>
  </div>
  <div class="form-group">
    <label for="trad"class="col-sm-2 control-label">Name:</label>
      <div class="col-sm-10">
        <input type="text"class="form-control"id="trad"placeholder="Name" name ="search1">
      </div>
  </div>
  <div class="form-group">
    <label for="send"class="col-sm-2 control-label">Send Date:</label>
      <div class="col-sm-10">
        <input type="text"class="form-control"id="send"placeholder="YYYY-MM-DD"name ="search2">
      </div>
  </div>
  <div class="form-group">
      <div class="col-sm-offset-2 col-sm-10">
          <button type="submit"class="btn btn-primary">Submit</button>
  </div>
 </div>
  </form>

我想要的是通过填写三个输入字段,两个输入字段甚至三个输入字段中的一个来搜索数据库中的数据。但它仍会返回搜索到的数据。

请帮帮我。谢谢。

1 个答案:

答案 0 :(得分:0)

两步你的应用应该有效:

第一:获得结果

 $res =  $query->getQuery()->getResult();

二:在您的视图中浏览资源

{%for result in res %}

   {{ result.name }}

{%endfor%}

使用symfony表单可以做得更好。