palmtree/form

具有 Bootstrap v5/v4 类、验证、Recaptcha 支持、AJAX 提交等功能的形式构建器

v6.1.0 2024-08-23 14:14 UTC

README

License Build Packagist Version npm version

PHP 表单构建器,带有 Bootstrap 类、验证数据绑定Google RecaptchahCaptcha 支持,以及其他功能。

要求

  • PHP >= 8.1

安装

使用 composer 将包添加到依赖项

composer require palmtree/form

可选:安装 NPM 包以支持 AJAX 表单提交、CAPTCHA 支持和表单集合

npm install @palmtree/form

使用示例

构建

use Palmtree\Form\FormBuilder;
use Palmtree\Form\Captcha\GoogleRecaptcha;
use Palmtree\Form\Captcha\HCaptcha;

$builder = (new FormBuilder('my_form'))
    ->add('name', 'text', ['error_message' => 'Please enter your name'])
    ->add('email_address', 'email', [
        'help' => 'We will never share your email with anyone',
    ])
    ->add('message', 'textarea', [
        'required' => false,
        'label' => 'Enter your message',
    ])
    ->add('recaptcha', 'captcha', [
        'captcha' => new GoogleRecaptcha('<site_key>', '<secret>'),
        //'captcha' => new HCaptcha('<site_key>', '<secret>'),
    ]);

$builder->add('send_message', 'submit');

$form = $builder->getForm();
// Set $form to some variable accessible in a view

渲染

<div class="container">
    <?= $form->render(); ?>
</div>

<!-- Optional JS for AJAX submissions, CAPTCHA support and form collections -->
<script src="https://unpkg.com/@palmtree/form@6.1.0/dist/palmtree-form.pkgd.min.js"></script>

处理

$form->handleRequest();

if ($form->isSubmitted() && $form->isValid()) {
    // Send an email/save to database etc
    $name = $form->get('name')->getData();
}

查看 examples 目录,了解使用 AJAX、文件上传、集合等功能的示例。

文档

查看文档 了解更高级的使用方法。

示例

运行示例的最简单方法是运行 serve.sh 脚本。此脚本启动一个小的 PHP Docker 容器,并使用 PHP 内置的 web 服务器提供示例。

./examples/serve.sh

许可证

MIT 许可证 下发布