Forms 如何在不使用formbuilder的情况下在symfony2中创建简单的html表单
我有一个(希望如此)简单的问题: 我想在Symphony2项目中使用一个简单的html表单。问题是,noting是通过get-through表单发送的 发送表单后的Url是:localhost:8888/de/search\u art 你看。。。后面没有线 表单如下所示:Forms 如何在不使用formbuilder的情况下在symfony2中创建简单的html表单,forms,symfony,routing,twig,Forms,Symfony,Routing,Twig,我有一个(希望如此)简单的问题: 我想在Symphony2项目中使用一个简单的html表单。问题是,noting是通过get-through表单发送的 发送表单后的Url是:localhost:8888/de/search\u art 你看。。。后面没有线 表单如下所示: <form class="navbar-form" role="search" method="get" action="{{ path('func_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>
我不想在控制器中为它做任何事情,因为它在导航栏中,因此它必须出现在每个页面中。我不想在页面的每个控制器中为一个简单的导航栏搜索字段初始化一个表单变量
是否有可能在symfony2中创建这样一个简单的表单而不使用表单生成器等
格里茨·迈克尔是的,您可以安全地将您的表格保存在您提交的表格中。无需在每个控制器中创建表单生成器并将表单发送给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>
发送
因为您的输入缺少name属性,而name属性是创建post数据/查询字符串的相关属性。您不能这样做,它会给您:“CSRF令牌无效。请尝试重新提交表单”。不管怎样,没有它,它实际上可以工作。出于某种原因,Symfony序列化了表单。我特别讨厌这样一个事实,即我需要表单对象来使用表单,在很多情况下,我发现它太过分了。您的$form->isValid也将失败,但$form->isSubmitted()将不会失败。我讨厌表单对象的原因之一是,用EntityType填充下拉列表,而不是让简单的symfony管理使流程成为一场噩梦,这是多么乏味
<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>