Symfony2 独立表单组件 v2.3 - 设置表单

Posted

技术标签:

【中文标题】Symfony2 独立表单组件 v2.3 - 设置表单【英文标题】:Symfony2 standalone Form component v2.3 - setting up a form 【发布时间】:2013-05-02 05:36:33 【问题描述】:

这与此处提出的问题相同:Symfony2 standalone form component - setting up a form。这个问题的answer 似乎完全解决了这个问题。

不幸的是,当被问到这个问题时,表单组件的版本是 2.0.x,此后发生了一些变化,例如,使用表单工厂创建表单就完全不同了,现在比较 old code 和 @987654324 @。

我环顾四周,但没有找到任何有关如何使用最新版本执行此操作的文档或示例。

使用 Symfony2 之外的表单组件的示例应用程序的任何更新版本?

【问题讨论】:

【参考方案1】:

我有一个存储库,展示了 Symfony 2.1+ 的 Form 组件的独立用法,其中 Twig 和 php 作为模板引擎(检查分支):https://github.com/bschussek/standalone-forms/blob/2.1%2Btwig/src/setup.php

关键部分是您不应该再手动实例化FormFactory 对象(让我们的核心开发人员在更改其构造函数时更加灵活),而是改用Forms 类:

$formFactory = Forms::createFormFactoryBuilder()
    ->addExtension(new CsrfExtension($csrfProvider))
    ->addExtension(new ValidatorExtension($validator))
    ->getFormFactory();

另一个好处是您的 IDE 将列出表单工厂构建器的设置器,向您展示您可以配置的内容以及如何配置。

【讨论】:

如果您在 sf2 项目中重新创建 FormFactoryBuilder,您还可以将 sf2 加载的扩展添加到您的 Builder。 $extensions = $this->get('form.registry')->getExtensions();$formFactoryBuilder->addExtensions($extensions);$formFactory = $formFactoryBuilder->getFormFactory();我很好地利用了它。 // $this is a Controller

以上是关于Symfony2 独立表单组件 v2.3 - 设置表单的主要内容,如果未能解决你的问题,请参考以下文章

创建一个只使用 Symfony2 的控制台组件的项目

Symfony2:创建表单时如何设置表单域的值

如何将类属性设置为 Symfony2 表单输入

如何在 Symfony2 中使用 setter 设置表单字段值

如何使用 Symfony2 路由组件将路由与控制器绑定

Symfony2 复合表单,将错误与字段关联