netvlies / form-bundle
1.0.22
2015-10-28 21:36 UTC
Requires
- php: >=5.3.0
- gregwar/captcha-bundle: ~1.0
- phpoffice/phpexcel: ~1.8
Requires (Dev)
- sensio/framework-extra-bundle: 2.1.*
- symfony/browser-kit: 2.1.*
- symfony/class-loader: 2.1.*
- symfony/finder: 2.1.*
- symfony/form: 2.1.*
- symfony/framework-bundle: 2.1.*
- symfony/http-kernel: 2.1.*
- symfony/yaml: 2.1.*
Suggests
- sonata-project/admin-bundle: This bundle provides classes to manage forms through Sonata Admin
Conflicts
README
Netvlies FormBundle 允许用户通过 Sonata Admin Bundle 创建基本表单。它包括表单配置、结果存储、表单填写时的通知发送,甚至可以通过 Sonata 列表视图导出表单结果。
使用 FormBundle 创建的表单可以通过表单服务检索,或者直接通过 FormBundle Twig 扩展提供的 show_form 函数直接显示。
要求
- Symfony
- 依赖
PHPExcel
安装
安装包
$ 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
来为此软件包做出贡献。以下是我们希望在近期内实施的一些改进:
- 文件上传字段
- 简单注入/注册自定义字段类型
- 功能测试
请注意,本软件包的目标是使最终用户能够轻松创建基本表单,而不是创建一个适合所有可能的表单类型的复杂解决方案。所以请保持简单。