以DRY KISS的方式对表单进行坐标验证、错误处理、消息、值和输入。

v1.0 2016-10-20 21:10 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:42:18 UTC


README

Packagist License MIT HHVM Tested PHP 7 Supported Build Status Code Climate Test Coverage

以DRY DRY 和KISS KISS的方式对表单进行坐标验证、错误处理、消息、值和输入。

安装

将以下内容添加到您的composer.json文件中。

{
    "require": {
        "bootpress/form": "^1.0"
    }
}

示例用法

<?php

use BootPress\Form\Component as Form;

$form = new Form('form', 'post');

// Create some menus
$form->menu('gender', array(
    'M' => 'Male',
    'F' => 'Female',
));

$form->menu('remember', array('Y' => 'Remember Me'));

// Set the default values
$form->set('values', array(
    'name' => 'Daniel',
    'email' => 'me@example.com',
    'gender' => 'M',
));

现在表单的菜单和默认值已经设置,您拥有一个填充了$_POST变量的$form->validator对象,可以立即使用。您不必使用BootPress 验证器组件,但它确实会让事情变得更容易。

$form->validator->set(array(
    'name' => 'required',
    'email' => 'required|email',
    'gender' => 'required|inList',
    'password' => 'required|minLength[5]|noWhiteSpace',
    'confirm' => 'required|matches[password]',
    'feedback' => 'maxWords[2]',
    'remember' => 'yesNo',
));

if ($vars = $form->validator->certified()) {
    echo '<pre>'.print_r($vars, true).'</pre>';
    // $form->eject();
}

当您创建一个$form->menu()时,我们会自动将其值传递给验证器,这样您就可以使用$form->validator->set('field', 'inList')而无需参数,仍然受到保护。这就是为什么我们没有在您上面的性别中选择'inList[M,F]'。要创建表单

echo $form->header();
echo $form->fieldset('Form', array(
    $form->text('name', array('class' => 'form-control')),
    $form->text('email', array('placeholder' => 'Email Address')),
    $form->radio('gender'),
    $form->password('password'),
    $form->password('confirm'),
    $form->textarea('feedback'),
    $form->checkbox('remember'),
    $form->input('submit', array('name' => 'Submit')),
));
echo $form->close();

这将生成以下HTML

<form name="form" method="post" action="http://example.com?submitted=form" accept-charset="utf-8" autocomplete="off">

    <fieldset><legend>Form</legend>
    
        <input type="text" class="form-control" name="name" id="nameI" value="Daniel" data-rule-required="true">
        
        <input type="text" placeholder="Email Address" name="email" id="emailII" value="me@example.com" data-rule-required="true" data-rule-email="true">
        
        <div class="radio"><label><input type="radio" name="gender" value="M" checked="checked" data-rule-required="true" data-rule-inList="M,F"> Male</label></div>
        <div class="radio"><label><input type="radio" name="gender" value="F"> Female</label></div>
        
        <input type="password" name="password" id="passwordIV" data-rule-required="true" data-rule-minlength="5" data-rule-nowhitespace="true">
        
        <input type="password" name="confirm" id="confirmV" data-rule-required="true">
        
        <textarea name="feedback" id="feedbackVI" cols="40" rows="10" data-rule-maxWords="2"></textarea>
        
        <div class="checkbox"><label><input type="checkbox" name="remember" value="Y"> Remember Me</label></div>
        
        <input type="submit" name="Submit">
        
    </fieldset>
    
</form>

您可能想在其中添加一些标签和错误消息,但这个表单组件旨在提供一个基本框架,先完成艰苦的部分,这样您就可以按自己的喜好进行样式设计。

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件