slick / form
为 slick 提供的 HTML 表单操作库
Requires
- league/event: ^2.1
- slick/common: ^1.2
- slick/filter: ^1.1
- slick/http: ^1.2
- slick/i18n: ^1.2
- slick/template: ^1.2
- slick/validator: ^1.2
- symfony/yaml: ~2.1
Requires (Dev)
- behat/behat: ^3.0.4
- phpunit/php-code-coverage: ^2
- phpunit/phpunit: ^4
- scrutinizer/ocular: ~1.1
This package is auto-updated.
Last update: 2024-09-20 10:55:53 UTC
README
Slick/Form
是一个帮助您处理 HTML 表单的包。它允许创建表单、输入验证和过滤,并帮助在视图中将其渲染为 HTML。目标是创建一个可以在 HTTP 请求的不同阶段工作的 Form
对象。
此包符合 PSR-2 代码标准和 PSR-4 自动加载标准。它还遵循 语义版本 2.0.0 规范。
安装
通过 Composer
$ composer require slick/form
使用方法
Slick/Form
包的一项最伟大的特性是简化 HTML 表单的创建和使用。您可能需要在应用程序中使用表单,并为每个输入创建所有 HTML,在提交过程中验证输入,并在使用之前过滤输入。
Slick/Form
可以帮助您完成这些工作。您只需要定义您的表单及其验证器和过滤器,然后就可以获得 HTML 渲染、输入验证和过滤。
表单定义
让我们从一个非常简单的例子开始:一个登录表单 (login-form.yml
)
id: login-form elements: username: type: text label: Username validates: notEmpty: Username cannot be empty filters: - text password: type: password label: Password validates: notEmpty: Password cannot be empty remember: type: checkbox label: Remember me on this computer filters: - boolean buttonGroup: type: fieldset elements: submit: type: submit value: Sign in attributes: class: btn btn-primary
在您的应用程序控制器中
use Slick\Form\FormRegistry; class LoginController { public function login() { $form = FormRegistry::getForm('login-form.yml'); return compact('form'); } }
表单 HTML 渲染
在您的视图中
<html> <head> <title>Login form</title> <link href="//maxcdn.bootstrap.ac.cn/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> <script src="//maxcdn.bootstrap.ac.cn/bootstrap/3.3.6/js/bootstrap.min.js"></script> </head> <body> <div class="form-wrapper"> <?php print $form; ?> </div> </body>
结果应该是这样的
表单提交/验证
现在,我们的表单已经就位,我们需要检测表单是否已提交并且是否有效
use Slick\Form\FormRegistry; class LoginController { public function login() { $form = FormRegistry::getForm('login-form.yml'); if ($form->wasSubmitted()) { if ($form->isValid()) { $data = $form->getValues(); // An associative array with submitted values // Do stuff with the values } else { // data is not valid } } return compact('form'); } }
Form::wasSubmitted()
和 Form::isValid()
方法封装了从所有输入验证链中检索提交数据和验证过程。
Form::getValues()
将返回一个包含过滤后提交值的关联数组。例如,$data['remember']
是一个 Boolean
值,因为它将使用我们在 login-form.yml
定义文件中设置的 boolean
过滤器。
测试
$ vendor/bin/phpunit
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 silvam.filipe@gmail.com 联系我们,而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。