我已经创建了一个用于在数据库中搜索数据的表单。
这是表格:
<form role="search" method="post" action="{{ path('search') }}">
<div>
<input type="text" placeholder="Cerca" name ="search">
<span>
<button type="submit"></button>
</span>
</div>
</form>
当然我也在控制器中有动作:
public function searchAction(Request $request)
{
$request = $this->getRequest();
$data = $request->request->get('search');
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery('SELECT a FROM AppBundle:Article a WHERE a.titolo LIKE :data')
->setParameter('data', $data);
$result = $query->getResult();
return $this->render('default/search.html.twig', array('result' => $result));
}
通过这种方式,我可以在字段中写下我想要搜索的内容,并提交表单。表单已提交,但它会再次呈现表单,而不会显示任何消息或结果。
如果我想渲染结果,是否必须创建一个结果模板,我使用for循环来渲染所有结果?
如何呈现结果?
答案 0 :(得分:1)
您已将$results
传递给渲染功能。因此,使用模板中的必需代码,它应该没有太多麻烦:
E.g。
{% for result in results %}
<div>
// use result, e.g. {{ result.title }} or whatever your data has to offer
</div>
{% else %}
<em>no results found</em>
{% endfor %}