【问题标题】:How to create a simple html form in symfony2 without using formbuilder如何在 symfony2 中创建一个简单的 html 表单而不使用 formbuilder
【发布时间】:2015-03-31 03:08:03
【问题描述】:

我有一个(希望如此)简单的问题:

我想在 sympony2 项目中使用一个简单的 html 表单。问题是,注释是通过表格发送的。

发送表单后的Url为: localhost:8888/de/search_art?

你看...后面没有字符串? !!!

表格如下所示:

<form class="navbar-form" role="search" method="get" action="{{ path('func_search_art') }}">
          <input type="text">
          <button type="submit" class="btn btn-default">Send</button>
</form>

这是我的路线:

func_search_art:
    path:     /search_art/
    defaults: { _controller: FuncSearchBundle:Search:SearchArt }

我不想在控制器中为它做某事,因为它在导航栏中,为此它必须出现在每个页面中。我不想在页面的每个控制器中为简单的导航栏搜索字段初始化表单变量。

是否有可能在 symfony2 中创建一个像这样的简单表单而不使用表单构建器等等...?

问候迈克尔

【问题讨论】:

    标签: forms symfony routing twig


    【解决方案1】:

    是的,您可以安全地将您的表单以您提交的形式保存在树枝上。无需在每个控制器中创建表单构建器并将表单发送到 twig。您必须构建它的唯一地方是 SearchController 中的 SearchArtAction 方法,您可以在其中拥有此表单的处理功能。

    您还需要为文本输入命名。

    <form class="navbar-form" role="search" method="get" action="{{ path('func_search_art') }}">
          <input type="text" name="q">
          <button type="submit" class="btn btn-default">Send</button>
    </form>
    

    【讨论】:

      【解决方案2】:

      因为您的输入缺少 name 属性,这是创建帖子数据/查询字符串的相关属性。

      【讨论】:

        【解决方案3】:

        你不能它会给你:“CSRF 令牌无效。请尝试重新提交表单”。不管怎样,没有它它实际上可以工作。出于某种原因,Symfony 对表单进行了序列化。我特别讨厌我需要表单对象来使用表单这一事实,在许多情况下我发现它有点矫枉过正。您的 $form->isValid 也会失败,但 $form->isSubmitted() 不会。我讨厌表单对象的原因之一是使用 EntityType 填充下拉列表是多么乏味,而不是让简单的 symfony 设法使该过程成为一场该死的噩梦。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-05-27
          • 1970-01-01
          • 2022-01-21
          • 2019-01-27
          • 1970-01-01
          • 2015-09-18
          • 2012-05-16
          • 1970-01-01
          相关资源
          最近更新 更多