2015-01-31 104 views
0

我有一个(希望)简单的问题:如何创建Symfony2的一个简单的HTML表单,而无需使用formbuilder

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

发送表单后的网址是: 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中创建一个像这样的简单表单而不使用表单构建器等等......?

格尔茨迈克尔

回答

1

是的,你可以放心地让您的形式写在树枝在你提出它的表格。无需在每个控制器中创建表单构建器并将表单发送给树枝。唯一需要构建它的地方是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> 
1

因为您的输入缺少名称属性,这是用于创建发布数据/查询字符串的相关属性。

0

你不能给它:“CSRF令牌无效,请尝试重新提交表格”。不管它在没有它的情况下实际上工作。由于某些原因,Symfony将这些表格序列化。我特别讨厌我需要表单对象来使用表单的事实,在很多情况下,我发现它是过度的。你的$ form-> isValid也会失败,但$ form-> isSubmitted()不会。我讨厌表单对象的原因之一是使用EntityType填充下拉列表是非常繁琐的,而不是让简单的symfony设法使该过程成为一个该死的恶梦。

相关问题