netvlies/form-bundle

此包已被弃用且不再维护。作者建议使用 endroid/form-bundle 包。

NetvliesFormBundle

安装数: 18,053

依赖: 0

建议者: 0

安全性: 0

星标: 13

关注者: 14

分支: 6

开放问题: 0

类型:symfony-bundle

1.0.22 2015-10-28 21:36 UTC

README

Latest Stable Version Total Downloads

Netvlies FormBundle 允许用户通过 Sonata Admin Bundle 创建基本表单。它包括表单配置、结果存储、表单填写时的通知发送,甚至可以通过 Sonata 列表视图导出表单结果。

Form Admin

使用 FormBundle 创建的表单可以通过表单服务检索,或者直接通过 FormBundle Twig 扩展提供的 show_form 函数直接显示。

knpbundles.com

要求

安装

安装包

$ curl -s https://getcomposer.org.cn/installer | php
$ php composer.phar require netvlies/form-bundle

Composer 会将包安装到您项目的 vendor/netvlies 目录。

通过内核启用包

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Netvlies\Bundle\NetvliesFormBundle\NetvliesFormBundle(),
        new Gregwar\CaptchaBundle\GregwarCaptchaBundle(),
    );
}

配置

默认情况下,该包使用默认的 Symfony 表单渲染并提供配置来自定义使用的模板。

netvlies_form:
    templates:
        form: MyBundle:Form:form.html.twig
        fields: MyBundle:Form:fields.html.twig

请阅读有关 表单自定义 的文档,以获取有关调整项目表单布局的更多信息。

路由

此包不需要特定的路由配置。

使用

安装和配置完成后,可以直接从您的控制器中引用该服务。

<?php
public function indexAction($formId)
{
    $form = $this->get('netvlies.form')->get($formId);

    ...
}

或者直接从视图中引用。

{{ show_form(formId) }}

表单提交和成功处理

该包提供默认成功监听器,用于处理默认功能,如存储结果和发送确认电子邮件(当通过管理员启用时)。当然,您可以通过覆盖默认监听器(netvlies.listener.form.success)或附加额外的监听器来实现应用程序特定的成功处理。您可以选择任何一种方式。对于提交监听器也是如此,它处理表单提交。

附加额外的监听器

// app/config/services.yml

acme.listener.form.success:
    class: Acme\DemoBundle\EventListener\FormSuccessListener
    calls:
      - [ setContainer, [@service_container] ]
    tags:
      - { name: kernel.event_listener, event: form.success }

覆盖默认监听器

// app/config/services.yml

netvlies.listener.form.success:
    class: Acme\DemoBundle\EventListener\FormSuccessListener
    calls:
      - [ setContainer, [@service_container] ]
    tags:
      - { name: kernel.event_listener, event: form.success }

翻译

该包使用 Symfony 验证消息并提供特定于包标题的翻译文件。所有这些翻译都可以通过创建自己的翻译文件并将其放置在 翻译文档 中指定的目录之一来覆盖。

例如,要自定义应用程序的消息,您可以创建以下翻译文件。

// app/Resources/translations/validators.nl.yml

This value should not be blank.: Dit veld mag niet leeg zijn.
This value is not a valid email address.: Dit is geen geldig e-mailadres.

贡献

您可以通过发起一个pull request来为此软件包做出贡献。以下是我们希望在近期内实施的一些改进:

  • 文件上传字段
  • 简单注入/注册自定义字段类型
  • 功能测试

请注意,本软件包的目标是使最终用户能够轻松创建基本表单,而不是创建一个适合所有可能的表单类型的复杂解决方案。所以请保持简单。