我正在尝试创建搜索功能。但我在如何做到这一点上遇到了困难。我是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>
我想要的是通过填写三个输入字段,两个输入字段甚至三个输入字段中的一个来搜索数据库中的数据。但它仍会返回搜索到的数据。
请帮帮我。谢谢。
答案 0 :(得分:0)
两步你的应用应该有效:
第一:获得结果
$res = $query->getQuery()->getResult();
二:在您的视图中浏览资源
{%for result in res %}
{{ result.name }}
{%endfor%}
使用symfony表单可以做得更好。