2013-09-26 27 views
0

我的问题是,为什么我需要这个formbuilder?对于像我这样的程序员来说,仅仅使用简单的CSS和HTML编写最后一年的简单PHP代码,我不得不学习Twig,并用所有学习材料进入Symfony系统。现在我不能使用Twig来创建表单。好吧,我也学习了这个formbuilder的东西。没问题。我现在对此有了一个想法,我构建了这样的表单,但是我看不到它的好处?如果你把它写在树枝上,你可以重复使用它,嗯?为什么我需要Symfony formbuilder?有什么好处?

也许有一件事我只是忽略了。

+1

我认为你的答案与'你为什么使用Symfony2'有关。 – pbenard

+0

我无法回答Symfony2,但在1.1+版本中,这个想法是创建一个非常容易添加验证和每场现场报告的系统,即使在冗长的表单上也可缩短创建新屏幕的时间。不幸的是,对于简单的表单使用起来非常复杂,当时论坛上的反馈意见是,有不少人放弃了它。我不知道这是如何融入到Symfony2中的表单系统的开发中的。但是我应该认为它的存在理由是一样的 - 让你快速启动并运行一个可表现形式,并带有验证默认值。 – halfer

+0

尝试编写复杂的嵌套形式与数百个静态+可选的领域,取决于不同的参数在树枝:) –

回答

3

问题是旧的,但仍然相关,并没有一个很好的答案,所以我会尽量给你一些优势和使用formBuilder的原因。

表单验证 表单中的数据根据​​实体属性的约束进行验证。非常好,很容易。

实体选择类型 您可以在没有任何努力的情况下预先加载带有实体的选择框。

DataTransformers 您可以在视图/标准/模型数据之间应用某些检查,数据转换和格式化。

示例:您将从数据库中获得ISO8601字符串 - > [magic happens here] - > php DateTime对象使用 - > [更多魔术] - >很好的Intl格式化和本地化的日期表单字段。

+ optionsResolver

...如果你愿意去远一点与枝条,你基本上可以定义任何形式元素的呈现,你能想到的任何方式。

示例:使用自定义的FormType和树枝表单控件,一个简单的

->add('devices', 'device_selection', array(
       'site' => $deviceGroup->getSite(), 
       'groups' => false, 
       'group' => $deviceGroup, 
      )) 

在你的表单生成器,可以提供你一个复选框列表,每个包裹在一个div,带图标和其他详细信息。只是一个例子。

这只是我的头顶。

我曾经做过PHP/HTML/CSS的事情,但是当你手上有一个庞大复杂的Web项目时,formBuilder增加了一点复杂性,增加了很大的灵活性。这是像Symfony这样的框架闪耀的地方。