bic / form-validation
让我们将表单验证逻辑应用于js、其他php脚本、API...
1.3.3
2014-08-06 18:30 UTC
Requires
- php: >=5.3.3
- jms/serializer-bundle: >=0.11
- symfony/form: >=2.3.0
- symfony/framework-bundle: >=2.3.0
- symfony/validator: >=2.3.0
This package is not auto-updated.
Last update: 2024-09-24 01:31:46 UTC
README
本捆绑包的目的是创建一个表单信息的抽象和通用对象,以便将其解析到其他工具(如JavaScript或PHP工具)。
例如:它可以帮助您将此信息添加到表单的JavaScript验证逻辑中。
##依赖项
检查当前版本的composer.json。
##安装
####Composer
composer require bic/form-validation
####启用捆绑包
//... new Bic\FormValidationBundle\BicFormValidationBundle() //...
##工作原理
####创建表单
// form Data models $formData = array( new Form\Model\Register(), new Form\Model\Document() ); // form builder $formBuilder = $this->container ->get('form.factory') ->createNamedBuilder('form', 'form', $formData) ->add('phone', 'text') ->add('password', 'password') ->add('document', new Form\Type\DocumentType()) ->add('submit', 'submit'); // get form from form builder // (http://www.interesarte.com/wp-content/uploads/2013/05/willsmith.jpg) $form = $formBuilder ->getForm() ->handleRequest($request);
####提取验证
$formValidation = $this->get('bic_form_validation.form_validation'); //returns FormValidation object $formValidation->extractValidation($form); //returns fields array $formValidation->getFields(); //returns json object $formJson = $formValidation->toJson();
####将其返回到视图
return array( //... 'form_validation' => $formJson, //... );
然后您可以随意使用它。
##json表单示例
[ { constraints: [ "Default": [ { "message": "This value should not be null.", "groups": [ "Default", "Model" ], "class": "Symfony\\Component\\Validator\\Constraints\\NotNull" } ] ], dataClass: "Bic\Voucher\EntityBundle\Entity\Category", options: { choices: { m: "Male", f: "Female" }, required: false, empty_value: "Choose your gender", empty_data: null }, value: '', pathName: [ "name", "bic_voucher_entitybundle_category" ], fullPathName: "bic_voucher_entitybundle_category[name]", type: "choice", validationGroups: [ ] }, { constraints: [ ], dataClass: "Bic\Voucher\EntityBundle\Entity\Category", options: { required: false }, value: '', pathName: [ "miniDescription", "bic_voucher_entitybundle_category" ], fullPathName: "bic_voucher_entitybundle_category[miniDescription]", type: "textarea", validationGroups: [ ] } ]
##最后更改
- 添加了来自FormView对象的实体结果(dataEntityChoice属性)
- 添加了JMS Serializer作为依赖项,以获取实体类型值并将其解析为JSON
- 添加了value属性。它包含字段的值。
- 移除了从传递的数据中获取类名的可能性
- 提供更好的和完整的JSON示例(来自TODO)
- 创建关联的js解析器,如ParsleyJs和js表单生成脚本。(项目外)(来自TODO)
- FIXED - 不适用于复杂表单。(来自已知错误)
- 更多单元测试(来自TODO)
- 添加了表单的通用信息
- 创建了第一个单元测试,以检查捆绑包是否与复杂表单一起工作
- 修复已知错误(来自TODO)
- 父表单未避免
- 提交按钮未避免
- 添加了更多表单信息
- 移除了jQValidation生成器
- 移除了生成器文件夹和策略。现在解析器将外部应用。
##相关资源
###Js表单创建器 它根据json信息创建表单。https://github.com/bichotll/Symfony-FormValidationBundle-js-parser
###Js ParsleyJS解析器 它将ParsleyJS验证应用于从Symfony-FormValidationBundle-js-parser表单对象或现有对象中获取的表单对象,或使用FormValidationBundle对象 https://github.com/bichotll/Symfony-FormValidationBundle-ParsleyJS-parser
##Wiki
##TODO
- 适当的单元测试。直到下一个更改,我将不会以程序方式检查响应。
- 使用容器等的模拟进行单元测试。
- 测试实体类型。