idmkr/form-validation

使用 respect/validation 的 PHP 表单验证器

dev-master 2016-02-09 18:57 UTC

This package is auto-updated.

Last update: 2024-09-11 20:04:46 UTC


README

##PHP 表单验证,基于类,直观。本包提供了对出色的 respect/validation 包的一个非常简单的封装。它只是一个可扩展的类,满足你的所有需求

##特性

##安装 使用 Composer 安装此包。

composer require idmkr/form-validation

扩展此类并开始使用 respect/validation 验证器作为直观的类方法。

##完整示例 处理经典的 Web 表单相当直接。首先将 ValidatableForm 扩展为新的表单类。然后,你可以使用 Respect\Validation\Validator ( v:: ) 并通过 setValidation 方法或通过驼峰式命名每个表单数据名称来定义你的表单字段。未通过这些方法定义的表单数据将被简单地忽略。

use Respect\Validation\Validator as v;
use Idmkr\FormValidation\ValidatableForm;

class ContactForm extends ValidatableForm
{
    // This generic method can wrap all of your form data
    public function setValidation() 
    {
        return [
            'name' => v::alpha("'\"&,")->length(1,100),
            'telephone' => v::phone(),
            'email' => v::email(),
            'subject' => v::length(3,300)
        ];
    }

    // This dynamic method will override any validation associated with setValidation()
    public function validateMessage()
    {
        return v::length(30,1500);
    }
}

在你的 POST 路由/控制器函数中,你会这样做

$form = new ContactForm('fr_FR');

$success = $form->validate($_POST);

if(!$success)
    echo json_encode($form->errors());

你还需要清理用户输入。主要是为了在验证失败后显示数据

<form>
    <input type="text" name="name" value="<?=$form->sanitized('name')?>">
</form>