kryptomania / extra-form-bundle
对 symfony 表单的一些增强:集合、javascripts、选择、依赖字段
v2.0.4
2019-04-25 14:38 UTC
Requires
- php: ^7.0
- symfony/framework-bundle: ^4.0
README
此包提供增强一些 Symfony 原生表单控件(如 CollectionType
或 ChoiceType
)的功能。
安装
步骤1:使用 composer 安装
运行以下 composer require 命令
$ composer require kryptomania/extra-form-bundle
步骤2:启用包
最后,在 kernel 中启用该包
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Kryptomania\ExtraFormBundle\KryptomaniaExtraFormBundle(), ); }
步骤3:添加表单主题
在 config.yml 中
# app/config/config.yml twig: form_themes: - 'KryptomaniaExtraFormBundle:Form:fields.html.twig'
步骤4:包含 JavaScript 文件
您需要在您的 base 模板文件中包含打包的 JavaScript 以供全局使用。您也可以只在需要使用的视图中包含它。
<!-- app/Resources/views/base.html.twig --> <!-- ExtraForm: CollectionType jQuery plugin --> <script src="{{ asset('bundles/kryptomaniaextraform/js/jquery.km.sfembedforms.js') }}"></script>
重要:这是一个 jQuery 插件,确保在包含之前包含 jQuery 文件。
使用
对于基本使用,在您的视图中
{# ... #} {{ form_row(form.myCollection) }} {# ... #} <script language="javacript"> $(document).ready(function(){ $("#{{ form.myCollection.vars.id}}").sfEmbedForms(); }); </script>
配置
'column_header_label' => true, // 当子表单以表格形式显示时,显示列标题。
'single_field_label' => false, // 显示表单每个字段的单独标签
'single_field_label_xs' => true, // 当分辨率在 xs 级别时(根据 Bootstrap 规范为 768px)显示单独的标签
'entry_css_class' => 'row', // 对于每个子表单,使用哪个类作为包装器
'entry_actions_css_class' => 'form-group text-right col-xs-12', // 对于每个项目的操作
'column_css_class' => array(), // 每个表单字段的 CSS 类(以表格形式显示)