【问题标题】:Trying to submit a form path and how to pass form values to URL尝试提交表单路径以及如何将表单值传递给 URL
【发布时间】:2015-09-14 00:49:02
【问题描述】:

我刚刚以 ASP.NET 程序员的身份进入 Symfony2。我有一个我想输入的非常简单的表单。由于它只包含一个标签和一个输入,我想我不想为它创建一个单独的表单类。但是,当我尝试执行该操作时,我遇到了一些麻烦:

<form action="{{ path('search', [{'src':'bla'}]) }}" method="get">
    <label for="src"></label>
    <input type="text" name="src" id="src" class="form-control search-input" placeholder="Type a group or song name: ie. Metallica, Fly me to the moon etc.">
</form>

如何将路径设置为mydomain.com/search/{src},我现在正在尝试至少构建一个路径,所以我使用“bla”作为一些占位符 valye。现在从上面的代码中,我在加载包含表单的页面时收到以下错误:

在 :home:index.html.twig 中的模板渲染过程中引发了异常(“缺少一些强制参数(“src”)以生成路由“搜索”的 URL。”)

我也尝试了一些方法:

path('search', 'bla')   <-- and --> path('search', 'bla', [])

带来错误:

在 :home:index.html.twig 中渲染模板时抛出异常(“警告:array_replace():参数 #3 不是数组”)

path('search', ['src':'bla'])

还有一些(可能)没有让我接近结果的废话。

这是否可行,或者我必须以“正常”的方式使用 {{ form_start() }} 并形成类?

【问题讨论】:

    标签: php html symfony twig url-routing


    【解决方案1】:

    不要尝试,只是阅读文档,它更有效,更快:) http://symfony.com/doc/current/book/templating.html#book-templating-pages

    {{ path('search', {'src':'bla'}) }}
    

    【讨论】:

    • 是的,它使页面返回。知道如何从输入中减去值而不是不断出现“bla”吗?目前我的网址加载为:http://localhost:8000/search/bla?src=bla?无论如何,我会给你支票,只是一个附带问题。
    • 你必须有一个带有精确src参数的路由:/search/{src},路由中未包含的任何其他参数将显示为?param=bla&amp;another_param=bla
    • 或者,如果我输入了一些不相关的内容,它会显示为 http://localhost:8000/search/bla?src=bazoom 编辑:我做了。给我一个秒编辑:就是这样:search: path: /search/{src} defaults: { _controller: AppBundle:Home:search }
    • 好的,我知道你的意思,这是表单的默认行为。您可以制作类似/search/?src={src} 的路线,并在您的表单操作中仅搜索不带参数的路线的路径。另一种方法是从/search?scr=keyword 重定向到search/keyword,但您必须执行另一个操作。
    • 谢谢,看看那些答案,也许对你有一点帮助:stackoverflow.com/a/22430651/3675759stackoverflow.com/a/23114632/3675759
    猜你喜欢
    • 2022-01-24
    • 2012-09-11
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 2013-07-16
    • 2021-07-29
    相关资源
    最近更新 更多