如何使用Symfony呈现搜索结果?

时间:2015-12-18 09:25:13

标签: forms symfony search

我已经创建了一个用于在数据库中搜索数据的表单。

这是表格:

<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循环来渲染所有结果?

如何呈现结果?

1 个答案:

答案 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 %}